我是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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。