【问题标题】:Invalid syntax with conditional expressions带有条件表达式的无效语法
【发布时间】:2013-09-03 17:41:21
【问题描述】:

这一切都是从安装新的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。

【问题讨论】:

  • 您能打印出该错误的来源吗?正如错误消息所述,对我来说,这似乎是一个简单的语法错误。
  • 之前的行是什么?您很可能之前忘记在某处关闭括号、括号或大括号。
  • 尝试创建collections.Counter,只是为了检查这确实是2.7.5。
  • 在 py2.5 中添加了三元表达式,请确保您仅在 py2.7 上。 which python 在你的 virtualenv 中返回什么?
  • @AshwiniChaudhary, /home/envs/my_env/bin/python... 当我运行它时,它说这是 python 2.7.5。

标签: python django mod-wsgi wsgi django-wsgi


【解决方案1】:

您的 mod_wsgi 似乎是为 Python 2.4 编译并使用的。您不能使用为一个 Python 版本构建的 mod_wsgi 并强制它为不同版本使用运行时安装。去检查你的 mod_wsgi 的状态和它的编译目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    相关资源
    最近更新 更多