我试图使用 wgsi/django1.5 和 virtualenv 部署一个 django 项目但我得到了错误,
SyntaxError: invalid syntax
mod_wsgi (pid=23927): Exception occurred processing WSGI script '/opt/project.wsgi'.
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 230, in __call__
self.load_middleware()
File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 40, in load_middleware
mod = import_module(mw_module)
File "/usr/lib/python2.4/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/opt/project/app1/middleware.py", line 2, in ?
import requests
File "/opt/pythonenv/django15/lib/python2.7/site-packages/requests/__init__.py", line 58
from . import utils
^
SyntaxError: invalid syntax
我认为这是由于中间件无法导入请求模块。
wsgi
import os
import sys
import site
site.addsitedir("/opt/pythonenv/django15/lib/python2.7/site-packages")
sys.path.append('/opt/')
sys.path.append('/opt/app1/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
os.environ['PYTHON_EGG_CACHE'] = '/opt/.python-eggs'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
httpd.conf
<VirtualHost x.x.x.x:80>
ServerName domain.com
WSGIScriptAlias / /opt/project/project.wsgi
WSGIDaemonProcess domain.com processes=5 python-path=/opt/pythonenv/django15/bin/python threads=1
Alias /media /project/app1/media
Alias /admin_media /usr/lib/python2.4/site-packages/django/contrib/admin/media
</VirtualHost>
当我在我的 virtualenv 中时,我可以毫无问题地导入请求等。
>>>
>>> import django
>>> django.get_version()
'1.5.1'
>>> import requests
>>>
有任何想法吗 ?