IOError:[Errno 2]没有这样的文件或目录:' /var/www/.virtualenvs/exampleenv/bin/activate_this.py")

时间:2015-04-18 09:24:10

标签: django apache mod-wsgi

我已经使用virtualenv在vps上部署django应用程序。以下是放在/var/www/example.wsgi

中的wsgi文件的内容
import os
import sys
import site
# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('~/.virtualenvs/exampleenv/local/lib/python2.7/site-packages')
# Add the app's directory to the PYTHONPATH
sys.path.append('/var/www/example')
sys.path.append('/var/www/example/example')
os.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings'
# Activate your virtual env
activate_env=os.path.expanduser("~/virtualenvs/exampleenv/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

但是error.log文件显示以下错误。

IOError: [Errno 2] No such file or directory: '/var/www/.virtualenvs/exampleenv/bin/activate_this.py")

正在/ var / www中寻找virtualenv而不是〜/ .virtualenv /.....

我已经检查了〜/ .virtualenvs / exampleenv

中存在的exampleenv的路径

1 个答案:

答案 0 :(得分:4)

该应用可能以不同的用户身份运行(主目录为/var/www/),因此expanduser功能将使用其主目录而不是您的主目录。

将其他用户文件放在您的主目录中并不是一个好习惯。尝试将virtualenv放入/var/www/<your_app>/.venv/var/www/.<your_app>_venv