創建一個新的Django項目與/tmp$ django startproject testsite
爲什麼apache2(2.2)沒有加載django(1.6.1)?
配置的Apache2運行在/tmp/testsite/testsite/wsgi.py
有一個簡單的線條import django
的wsgi.py中的應用程序(這是一切的時刻,因爲我試圖調試)。
我做配置httpd.conf中運行WSGI文件,(我認爲)的作品,因爲日誌100克這樣的:
Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] mod_wsgi (pid=12621): Target WSGI script '/tmp/testsite/testsite/wsgi.py' cannot be loaded as Python module.
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] mod_wsgi (pid=12621): Exception occurred processing WSGI script '/tmp/testsite/testsite/wsgi.py'.
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] Traceback (most recent call last):
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] File "/tmp/testsite/testsite/wsgi.py", line 26, in <module>
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] import django
[Wed Feb 26 16:55:07 2014] [error] [client 127.0.0.1] ImportError: No module named django
然後我檢查,如果我對SYS所需要的庫。路徑,具有打印 - 這表明,在運行import
聲明來看,sys.path中是確定的(更詳細地說,我在sys.path中有/...../sistem-packages
而且看着this鏈接,並嘗試了chmod a+x wsgi.py
,但仍然出現同樣的錯誤。
僅供參考,這裏有我的文件:
的httpd.conf
WSGIScriptAlias /vwh /tmp/testsite/testsite/wsgi.py
WSGIPythonPath /tmp/testsite:/home/local/smth/user/ve/tmp1/lib/python2.7/site-packages
<Directory /tmp/testsite/testsite>
<Files wsgi.py>
Order deny,allow
#Require all granted
Allow from all
</Files>
</Directory>
wsgi.py
import os
import sys
from subprocess import call
#print call(["which", "python"]) #also this gives a VERY weird result... prints `0`
import django
此外,試圖打印subprocess.call的輸出([ '它' ,'python'])但是那有最奇怪的結果 - 返回0
,我不知道如何解釋它
[編輯]我什麼是安裝在路徑的virtualenv /home/local/smth/user/ve/tmp1
[編輯]是 - 我可以從一個解釋器,進口Django的時候指定的路徑是在sys.path
,並django.__file__
回報/home/local/smth/user/ve/tmp1/local/lib/python2.7/site-packages/django/__init__.pyc
在'subprocess.call'上 - 這就是它返回的結果。你的進程的返回代碼(如果進程成功返回,通常爲0)。如果您希望它從該進程輸出stdout,則必須執行其他步驟。 無論如何,顯而易見的問題,但實際安裝在'/ home/local/smth/user/ve/tmp1/lib/python2.7/site-packages'中的完整'django'包?此外你的mod_wsgi版本可能是相關的。 – Iguananaut
在您的虛擬環境中,「導入django」是否在Python shell中工作?如果是這樣,'django .__ file__'中有什麼? – lanzz
@Iguananaut編輯了答案。導入django在控制檯中工作。 –