2015-05-25 227 views
1

當我嘗試訪問django網站時,出現「內部服務器錯誤」。 我使用Django 1.8,Python 2.7.10,centos 6.5和apache。部署Django應用程序的問題

在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 

感謝

回答

7

雖然你說你正在運行的Python 2.7,這個錯誤表示,實際上使用的是2.6,成爲集文字是僅在2.7版中引入。

問題是,mod_wsgi是針對特定的Python版本進行編譯的,在您的情況下,它是使用Centos 6.5的版本。你將需要重新編譯它爲2.7,或者找到一個已經編譯的版本。

0

您需要開始爲您的django項目使用virtualenv。這是一個不錯的tutorial。對於臨時解決方案,您可以使用python2.7 manage.py runserver來運行python 2.7的django。但是,強烈建議查看virtualenv。讓生活變得更容易。

關於使mod_wsgi使用python 2.7,你需要重新編譯它。對於這一點,只是下載源代碼並執行:

$ ./configure 
$ make 
$ sudo make install 

他們有一個快速安裝指南,您可以訪問here

+0

謝謝嘗試使mod_wsgi,但繼續得到一個錯誤之後,無法完成製作步驟,所以移動到已經內置python 2.7並完美運行的centos 7。 – ak111in