开发者社区> 问答> 正文

Python烧瓶应用程序无法使用mod_wsgi (Apache)找到虚拟环境

我是linux和apache的新手,我接管了一个烧瓶应用程序,它似乎无法找到配置文件中定义为python-home=/var/www/html/admin_api/reporting_module/venv的虚拟环境。我还没有找到一个关于stackoverflow的问题的完整答案来解释我的问题。 wsgi文件

import sys
import logging
import os
logging.basicConfig(filename='/var/www/html/admin_api/admin_mod_wsgi.log')
if sys.version_info[0] < 3:
    raise Exception('not using Python3 using:"%s"' %sys.version_info)

sys.path.insert(0,"/var/www/html/admin_api/")
sys.path.insert(0, "/var/www/html/admin_api/reporting_module/")
try:
    from reporting_module.admin_api import application
    application.secret_key = '****************************'
    os.chdir("/var/www/html/admin_api/reporting_module/")
except Exception as e:
    msg = f"system info {sys.version_info} \n path: {sys.path} \n {str(e)}"
    raise Exception(msg)

init.py文件

from flask import Flask
from flask_mail import Mail
import threading
from app import pkg
from app import forms
from app import config
import os
from flask import Flask
from flask_mail import Mail
from celery import Celery 
from dotenv import find_dotenv, load_dotenv


load_dotenv('.env', verbose=True)

app = Flask(__name__)

# celery requires some kind of broker backend, basically this is either redids or RabbitMq as far as I know
app.config['CELERY_BROKER_URL'] = 'redis://localhost:6379/0'
app.config['CELERY_RESULT_BACKEND'] = 'redis://localhost:6379/0'

celery = Celery(app.import_name, broker=app.config['CELERY_BROKER_URL'])
celery.config_from_object('app.celeryconfig')
celery.conf.update(app.config)

TaskBase = celery.Task

class ContextTask(TaskBase):
    abstract = True
    def __call__(self, *args, **kwargs):
        with app.app_context():
            return TaskBase.__call__(self, *args, **kwargs)

celery.Task = ContextTask

app.config.from_object(config.DevConfig)
mail = Mail(app)

from app import routes

/etc/apache2/sites-enabled / reports.conf文件

<VirtualHost *:80>

                ServerName reports.*******.com 
                ServerAdmin **********@********.com
                DocumentRoot /var/www/html/admin_api/
                WSGIApplicationGroup /var/www/html/admin_api/reporting_module/venv/bin/python
                WSGIDaemonProcess reporting_module user=www-data processes=2 threads=5 display-name=%{GROUP} python-home=/var/www/html/admin_api/reporting_module/venv home=/var/www/html/admin_api request-timeout=600

                WSGIProcessGroup reporting_module
                WSGIScriptAlias / /var/www/html/admin_api/admin_api.wsgi
               # *Every* Alias must have a directory block
                <Directory /var/www/html/admin_api>
                           Options Indexes FollowSymLinks
                           AllowOverride None
                           Require all granted  
                </Directory>
                <Directory /var/www/html/admin_api/reporting_module/app>
                           Options Indexes FollowSymLinks
                           AllowOverride None
                           Require all granted  
                </Directory>
                Alias /static  /var/www/html/admin_api/reporting_module/app/static
                <Directory var/www/html/admin_api/reporting-module/app/static/>
                           Options Indexes FollowSymLinks
                           AllowOverride None
                           Require all granted  
                </Directory>
                Alias /static/css  /var/www/html/admin_api/reporting_module/app/static/css
                <Directory var/www/html/admin_api/reporting-module/app/static/css>
                           Options Indexes FollowSymLinks
                           AllowOverride None
                           Require all granted  
                </Directory>


                CustomLog ${APACHE_LOG_DIR}/adminAPI-access.log combined
                ErrorLog ${APACHE_LOG_DIR}/adminAPI-error.log
                LogLevel warn
</VirtualHost>

任何想法,如何修复这个或任何其他我可以看看将不胜感激。 问题来源StackOverflow 地址:/questions/59378725/python-flask-app-cant-find-virtual-environment-using-mod-wsgi-apache

展开
收起
kun坤 2019-12-30 10:03:23 643 0
1 条回答
写回答
取消 提交回答
  • 这个应该是用了python3 virtualenv虚拟了一个环境,查阅这个库的文档进入虚拟环境操作试试

    2020-03-25 16:37:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载

相关镜像