这一切都是从安装新的python版本2.7.5开始的。当WSGI运行我的django的wsgi.py文件时,我收到此错误:
[Tue Sep 03 23:25:42 2013] [error] [client XXX.XXX.XXX.XXX] mod_wsgi (pid=4710): Target WSGI script '/var/www/empirik/data/www/mysite.com/my_project/wsgi.py' cannot be loaded as Python module.
[Tue Sep 03 23:25:42 2013] [error] [client XXX.XXX.XXX.XXX] mod_wsgi (pid=4710): Exception occurred processing WSGI script '/var/www/empirik/data/www/mysite.com/my_project/wsgi.py'.
[Tue Sep 03 23:25:42 2013] [error] Traceback (most recent call last):
[Tue Sep 03 23:25:42 2013] [error] File "/var/www/empirik/data/www/mysite.com/my_project/wsgi.py", line 22, in ?
[Tue Sep 03 23:25:42 2013] [error] import os
[Tue Sep 03 23:25:42 2013] [error] File "/home/envs/my_project/lib/python2.7/os.py", line 49, in ?
[Tue Sep 03 23:25:42 2013] [error] import posixpath as path
[Tue Sep 03 23:25:42 2013] [error] File "/home/envs/my_project/lib/python2.7/posixpath.py", line 324
[Tue Sep 03 23:25:42 2013] [error] slash, dot = (u'/', u'.') if isinstance(path, _unicode) else ('/', '.')
[Tue Sep 03 23:25:42 2013] [error] ^
[Tue Sep 03 23:25:42 2013] [error] SyntaxError: invalid syntax
我使用virtualenv并且无法弄清楚它为什么会发生。我也在这台机器上安装了python 2.4.3,但它甚至没有与“python”别名相关联,而且我的virtualenv中肯定有python 2.7.5。
更新 好的,我在我的wsgi.py中提出异常,看看它使用的是sys.path,它是python2.4:
['/home/envs/my_env/lib/python24.zip', '/home/envs/my_env/lib/python2.4/', '/home/envs/my_env/lib/python2.4/plat-linux2', '/home/envs/my_env/lib/python2.4/lib-tk', '/home/envs/my_env/lib/python2.4/lib-dynload']
我不明白为什么以及如何将其更改为python2.7。
答案 0 :(得分:1)
看起来你的mod_wsgi是为Python编译并使用Python 2.4的。您不能为一个Python版本构建mod_wsgi,并强制它为不同版本使用运行时安装。去检查你的mod_wsgi的状态以及它的编译内容。