【发布时间】:2019-07-10 12:37:19
【问题描述】:
我正在尝试使用 Apache 和 WSGI 部署 Flask 服务器,但在加载我的应用程序主页时出现 500 错误。 Flask 和 Apache 本身似乎连接良好,但是当我查看我的 Apache 日志时,我收到以下错误 ModuleNotFoundError: No module named 'keys',其中 keys.py 是与我的 __init__.pyflask 文件位于同一目录中的文件。
我在 Apache 的可用站点中的 .conf 文件如下:
<VirtualHost *:80>
ServerName SERVER'S IP
ServerAdmin email@email.com
WSGIScriptAlias / /var/www/FlaskApp/FlaskApp.wsgi
<Directory /var/www/FlaskApp/FlaskApp/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/FlaskApp-error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/FlaskApp-access.log combined
</VirtualHost>
我的 .wsgi 文件如下:
#!/usr/bin/python3.6
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/FlaskApp/")
from FlaskApp import app as application
我的目录结构如下:
【问题讨论】:
-
您使用的是绝对导入还是相对导入?
-
抱歉回复晚了,如果我这样做
from myproject.keys import api_key,那么我可以让导入工作。我的项目的完整路径是/var/www/FlaskApp/myproject。我认为这与我的 .wsgi 文件中的sys.path.insert(0,"/var/www/FlaskApp/")行有关吗?虽然它确实有效,但我不想在任何时候从我的 git 存储库中提取生产/服务器代码时都不必更改它,而且它也不漂亮。
标签: python apache flask apache2 mod-wsgi