2012-08-01 48 views
2

我正在部署一個web2py應用程序,我將通過mod_wsgiApache一起提供它。我在我的虛擬主機配置如下WSGI指令:Apache2 mod_wsgi中的Web2py與virtualenv

WSGIDaemonProcess web2py user=www-data group=www-data \ 
          display-name=%{GROUP} 
    WSGIProcessGroup web2py 
    WSGIScriptAlias//var/www/web2py/wsgihandler.py 

這是工作,但它走的是全系統的Python安裝。因此,找不到一些軟件包(因爲它們只存在於我的virtualenv中)。我想告訴這個特殊的虛擬主機(或整個Apache的,如果沒有其他的方式),使用Python安裝在我的虛擬環境(/home/myuser/.virtualenvs/python2.7.2/bin)。

是否有可能配置此爲Apache?或者更好,只是爲了我的虛擬主機?我想造成儘可能少的影響到系統的其餘部分(特別是,我不想修改默認的Python版本所使用的系統範圍內)

回答

3

在你wsgihandler.py在頂部加入這個...

activate_this = '/path/to/virtualenv/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this) 
import sys 
sys.path.insert(0, '/path/to/web2py_dir') 
+0

這是否會使用Python在虛擬ENV,還是將只使用包裝中的virtualenv?我的系統python是2.6,而我的virtualenv python是2.7。我的web2py應用程序需要2.7。在activate_this.py以下注釋可以讀:「這可以用來當你必須使用現有的Python解釋器,而不是 的的virtualenv斌/ Python的」 – dangonfast 2012-08-01 12:52:26

+0

首先,你需要確保'mod_wsgi'編譯爲您的Python版本。完成之後,此配置建議將起作用。 – 2012-08-01 13:49:31

+0

爲什麼這樣? mod_wsgi將使用系統python,或者其路徑中的那個,不是嗎?當然,我不需要爲我的系統中安裝的每個不同的python版本編譯mod_wsgi ...此外,我不編譯mod_wsgi:我正在從Ubuntu存儲庫安裝它。 – dangonfast 2012-08-01 15:15:24

相關問題