2016-12-22 98 views
3

好吧對不起,我知道這個問題與另一個類似,但是當我嘗試其他答案似乎並沒有爲我工作。 Apache2.2:ImportError: No module named site。所以我試圖讓django/virtualenv/apache一起工作。任何幫助是極大的讚賞!!如何讓Django和Apache與virtualenv一起工作?

以下是錯誤日誌。

Part one of apache error logs Part two of apache error logs

這裏是我的Apache的conf文件

<VirtualHost *:80> 
ServerAdmin [email protected] 
DocumentRoot /var/www/html 
ServerName tracker.com 

<Directory /var/www/html/drish/drish> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
order allow,deny 
allow from all 
</Directory> 


WSGIDaemonProcess project python-path=/var/www/html/drish/:python-home=/var/www/html/virtenv 
WSGIScriptAlias//var/www/html/drish/drish/wsgi.py 
Alias /static /var/www/html/drish/drish 
</VirtualHost> 

我還沒有在wsgi.conf文件改變任何東西我所做的就是啓用它。雖然我確實在那裏看到了一些選擇,但不確定它們中的任何一個。

這是由django創建的WSGI.py文件,我也沒有改變。

import os 
from django.core.wsgi import get_wsgi_application 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "drish.settings") 
application = get_wsgi_application() 

再次感謝您的任何幫助。

回答

2

從錯誤日誌中可以看出,有幾個潛在的問題,包括無法導入drish.settings,以及它沒有在虛擬環境中使用Python二進制文件。我想你首先需要解決後面的問題,然後再找出爲什麼drish.settings不能導入,所以讓我們來驗證一些東西。

首先,您確定WSGIDaemonMode指令中的語法嗎?文檔看起來與上面的內容略有不同,關於python-path的值。這裏的their example from the docs

WSGIDaemonProcess example.com python-path=/path/to/mysite.com:/path/to/venv/lib/python2.7/site-packages 
WSGIProcessGroup example.com 

這裏就是我想你應該是這樣的:

WSGIDaemonProcess project python-path=/var/www/html/drish/:/var/www/html/virtenv/lib/python2.7/site-packages 
WSGIProcessGroup project 

很明顯,你會想驗證/var/www/html/virtenv/lib/python2.7/site-packages目錄確實存在,我正在做有關的猜測特定的位置。

這完全有可能會解決這兩個問題,但我不是100%確定的。無論哪種方式,試試這個,讓我們知道你如何繼續。理想情況下,您至少會開始看到它在虛擬環境中使用python二進制文件,而不是系統文件。

+0

這很棒!謝謝!也很抱歉,遲到的回覆已經拉上了其他項目,並且剛剛回到這一個! –