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