1

我试图使用 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
>>>

有任何想法吗 ?

4

0 回答 0