【问题标题】:Issue in deploying django application部署 django 应用程序的问题
【发布时间】:2015-08-07 07:13:33
【问题描述】:

当我尝试访问 django 网站时出现“内部服务器错误”。 我正在使用 Django 1.8、Python 2.7.10、centos 6.5 和 apache。

在 apache 日志中我收到以下错误:

mod_wsgi (pid=23866): Target WSGI script '/abc/abc/abc/wsgi.py' cannot be loaded as Python module.
[Mon May 25 14:40:47 2015] [error] [client xyz] mod_wsgi (pid=23866): Exception occurred processing WSGI script '/abc/abc/abc/wsgi.py'.
[Mon May 25 14:40:47 2015] [error] [client xyz] Traceback (most recent call last):
[Mon May 25 14:40:47 2015] [error] [client xyz]   File "/abc/abc/abc/wsgi.py", line 12, in <module>
[Mon May 25 14:40:47 2015] [error] [client xyz]     from django.core.wsgi import get_wsgi_application
[Mon May 25 14:40:47 2015] [error] [client xyz]   File "/abc/lib/python2.7/site-packages/django/__init__.py", line 1, in <module>
[Mon May 25 14:40:47 2015] [error] [client xyz]     from django.utils.version import get_version
[Mon May 25 14:40:47 2015] [error] [client xyz]   File "/abc/lib/python2.7/site-packages/django/utils/version.py", line 7, in <module>
[Mon May 25 14:40:47 2015] [error] [client xyz]     from django.utils.lru_cache import lru_cache
[Mon May 25 14:40:47 2015] [error] [client xyz]   File "/abc/lib/python2.7/site-packages/django/utils/lru_cache.py", line 28
[Mon May 25 14:40:47 2015] [error] [client xyz]      fasttypes = {int, str, frozenset, type(None)},
[Mon May 25 14:40:47 2015] [error] [client xyz]                      ^
[Mon May 25 14:40:47 2015] [error] [client xyz]  SyntaxError: invalid syntax

谢谢

【问题讨论】:

    标签: python django django-deployment


    【解决方案1】:

    虽然您说您运行的是 Python 2.7,但此错误表明您实际上使用的是 2.6,因为集合文字仅在 2.7 中引入。

    问题在于 mod_wsgi 是针对特定的 Python 版本编译的,在您的情况下是 Centos 6.5 附带的版本。你需要为 2.7 重新编译它,或者找到一个已经编译过的版本。

    【讨论】:

    • 好的,谢谢。您能否指出一些有关如何为 2.7 重新编译 mod_wsgi 的链接。我还按照digitalocean.com/community/tutorials/… 的教程进行操作,可以使用 python2.7 访问 python 2.7,但不确定为什么 django 仍然使用 2.6 版本。
    【解决方案2】:

    您需要开始为您的 django 项目使用 virtualenv。这是一个不错的tutorial。对于临时解决方案,您可以使用 python2.7 manage.py runserver 使用 python 2.7 运行 django。但是,强烈建议查看 virtualenv。让生活更轻松。

    关于使mod_wsgi使用python 2.7,你需要重新编译它。为此,只需下载源代码并执行:

    $ ./configure
    $ make
    $ sudo make install
    

    他们有一个快速安装指南,您可以访问here

    【讨论】:

    • 感谢尝试制作 mod_wsgi 但不断出现一个错误,无法完成制作步骤,因此移至已内置 python 2.7 且运行良好的 centos 7。
    猜你喜欢
    • 2020-11-02
    • 2021-08-09
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 2015-04-15
    • 2012-05-10
    相关资源
    最近更新 更多