【发布时间】:2019-05-27 09:27:55
【问题描述】:
我正在/home/myname/myproject/venv 内部为我的 apache2 服务器运行一个虚拟环境
我用
激活我的虚拟环境source venv/bin/activate
跑步
which django-admin
从我的虚拟环境中返回正确的文件。
跑步
import django
django.__file__
返回
/home/myname/myproject/venv/lib/python3.6/site-packages/django/__init__.py
跑步
pip freeze
返回所有我需要的包。
我的 apache2 配置文件也使用 python-path 参数指向 venv 目录
但是,在重新启动服务器后,我仍然收到 django 的 ModuleNotFoundError。
这里有什么问题?
编辑:apache2 配置文件
Alias /static /home/myname/myproject/static
<Directory /home/myname/myproject/static>
Require all granted
</Directory>
Alias /media /home/myname/myproject/media
<Directory /home/myname/myproject/media>
Require all granted
</Directory>
<Directory /home/myname/myproject/myproj>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /home/myname/myproject/myproj/wsgi.py
WSGIDaemonProcess myproject_app python-path=/home/myname/myproject python-home=/home/myname/myproject/venv/
WSGIProcessGroup myproject_app
WSGIApplicationGroup %{GLOBAL}
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
#os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproj.settings')
application = get_wsgi_application()
【问题讨论】:
-
您需要显示 Apache 配置。
-
你确定你在重启你的apache服务器时激活了
virtualenv?您可以添加到帖子wsgi.py文件以及 Apache 配置吗? -
用配置更新了原帖
-
也是的,我确保激活了 venv
-
@BrandonHimes 似乎并非如此。据我看你的代码。您确实指向 virtualenv 文件夹,但您在代码中的何处激活它?
标签: python django python-3.x apache mod-wsgi