2013-09-03 2 views
0

Все началось с установки новой версии python, 2.7.5. Я получаю эту ошибку, когда WSGI работает 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.

UPDATE: Хорошо, я поднял исключение в моем 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

Вы можете напечатать источник, где эта ошибка происходит из? Похоже на синтаксическую ошибку для меня, как указано в сообщении об ошибке. –

+3

Какая строка, которая * предшествует * этому? Вы, скорее всего, забыли закрыть скобки, скобки или скобки где-то раньше. –

+0

Попробуйте сделать 'collections.Counter', просто чтобы убедиться, что это действительно 2.7.5. – user2357112

ответ

1

Казалось бы, ваш mod_wsgi скомпилирован и использует Python 2.4. Вы не можете использовать mod_wsgi, созданный для одной версии Python, и заставить его использовать установку времени исполнения для другой версии. Перейдите проверить состояние вашего mod_wsgi и то, для чего он скомпилирован.

Смежные вопросы