2015-01-08 21 views
11

我在虛擬環境中有一個名爲python2.7的文件夾,內部爲libWSGIPythonPath應該放在我的virtualenv中?

在閱讀了六本教程之後,我無法弄清楚我想要指向WSGIPythonPath。我見過一些指向site-packages,但有些已經冒號:分隔列表。

Syntax error on line 1019 of /etc/httpd/conf/httpd.conf: 
WSGIPythonPath cannot occur within <VirtualHost> section 

WSGIPythonPath指向我的virtualenv的位置?

+0

什麼是您的設置?你是否試圖通過Apache運行一個Web應用程序(通過Mod_WSGI)?或另一個網絡服務器?你在哪裏試圖設置「WSGIPythonPath」? – Timusan

+0

Apache和mod_wsgi,是的。嘗試在'的Apache配置文件中設置「WSGIPythonPath」 – user83039

+0

並且您是否在守護進程模式或嵌入模式下使用Mod_WSGI?將您的VirtualHost/Apache配置條目與您的問題一起發佈也許會有幫助。 – Timusan

回答

12

您正在收到錯誤,因爲WSGIPythonPath指令不能在VirtualHost上下文中使用。您必須在主Apache配置文件中聲明它。如果你仍然想指向虛擬主機上下文中的virtualenv目錄,使用WSGIDaemonProcess指令代替它,它有一個python-path選項來聲明你的相關python目錄。

例如:你的虛擬主機配置文件應該是這個樣子:

<VirtualHost *:80> 
ServerName example.com 
CustomLog logs/example.com-access_log common 
ErrorLog logs/example.com-error_log 

WSGIDaemonProcess example.com python-path=/virtualenvpathto/site-packages:/pathto/exampleprojecthome 
WSGIProcessGroup example.com 

... 
</VirtualHost> 

全結腸:當你有一個以上的蟒蛇目錄要被添加到$使用PYTHON_PATH環境變量,讓說導入example.foo工作正常。在上面的例子中,有兩個目錄,它們可以更多或更少,這取決於你如何設置你的項目。

如果你在windows上,使用分號;而不是完整的冒號。

我希望這會有所幫助。

0

下面是官方文檔:https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi/#using-a-virtualenv

使用virtualenv¶

如果你安裝的virtualenv內項目的Python的依賴關係, 你需要的路徑添加到這個virtualenv中的位點打包 目錄到你的Python路徑。爲此,請向WSGIPythonPath指令添加一個額外的 路徑,如果使用類似UNIX的系統,則多個路徑使用冒號(:)分隔 ;如果使用Windows,使用分號(;)如果使用 則使用分號(;)。如果目錄路徑的任何部分包含空格 字符,完整的字符串以WSGIPythonPath必須 報價:

> WSGIPythonPath 
> /path/to/mysite.com:/path/to/your/venv/lib/python3.X/site-packages 

請務必提供正確的路徑到你的virtualenv,並更換 python3 .X與正確的Python版本(例如python3.4)。

+2

該鏈接沒有使用最佳實踐。當使用守護進程模式時,您應該使用''WGIPythonHome''來引用使用嵌入模式時的虛擬環境和''python-home''選項。請參閱:http://blog.dscpl.com.au/2014/09/using-python-virtual-environments-with.html –

相關問題