2015-01-08 40 views
11

Mam folder o nazwie python2.7 wewnątrz lib w środowisku wirtualnym.Gdzie WSGIPythonPath powinien wskazywać w moim virtualenv?

Po przeczytaniu kilku tuzinów samouczków, nie mogę dokładnie określić, do czego mam skierować WSGIPythonPath. Widziałem niektóre wskazujące na site-packages, ale niektóre zostały rozdzielone dwukropkiem :.

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

Gdzie powinna znajdować się ścieżka WSGIPythonPath w moim virtualenv?

+0

Jaka jest twoja konfiguracja? Czy próbujesz uruchomić aplikację internetową przez Apache (przez Mod_WSGI)? Lub inny serwer internetowy? Gdzie konkretnie próbujesz ustawić "WSGIPythonPath"? – Timusan

+0

Apache i mod_wsgi, tak.Próba ustawienia "WSGIPythonPath" w pliku konfiguracyjnym apache dla '' – user83039

+0

Czy używasz Mod_WSGI w trybie demona lub w trybie embedded? Pomocne może być również opublikowanie wpisu konfiguracji VirtualHost/Apache razem z pytaniem. – Timusan

Odpowiedz

12

otrzymujesz błąd, ponieważ WSGIPythonPath dyrektywa nie może być używany wewnątrz VirtualHost kontekście. Musisz zadeklarować go wewnątrz głównego pliku konfiguracyjnego Apache. Jeśli nadal chcesz wskazać katalogi w virtualenv w kontekście VirtualHost, zamiast tego użyj opcji python-path, aby zadeklarować odpowiednie katalogi Pythona.

Na przykład: plik konfiguracyjny wirtualnego hosta powinna wyglądać mniej więcej tak:

<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> 

Pełne okrężnicy : jest używany, gdy masz więcej niż jeden katalogi Pythona chcesz być dodawane do $ Zmienna środowiskowa PYTHON_PATH, aby można powiedzieć, że import example.foo działa poprawnie. W powyższym przykładzie są dwa katalogi, które mogą być w mniejszym lub większym stopniu zależne od konfiguracji projektu.

Jeśli jesteś w oknie, użyj średnika; zamiast pełnego dwukropka.

Mam nadzieję, że to pomoże.

0

Oto oficjalna dokumentacja: https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi/#using-a-virtualenv

Korzystanie z virtualenv¶

Jeśli zainstalować Pythona zależności Twojego projektu wewnątrz virtualenv, trzeba dodać ścieżkę do mutagenezy za tym virtualenv pakiety katalogu na ścieżkę do Pythona. Aby to zrobić, dodaj dodatkową ścieżkę do dyrektywy WSGIPythonPath, przy czym wiele ścieżek oddziela od dwukropka (:), jeśli używasz systemu UNIX-podobnego lub średnika (;), jeśli przy użyciu systemu Windows. Jeśli jakakolwiek część ścieżki katalogu zawiera spację charakter, kompletny ciąg argument WSGIPythonPath musi być cytowany:

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

Upewnij się podać poprawną ścieżkę do virtualenv i zastąpić python3 .X z poprawną wersją Pythona (np. Python3.4).

+2

To łącze nie jest używane najlepsze praktyki. Powinieneś użyć '' WGIPythonHome'', aby odnieść się do środowiska wirtualnego, gdy używasz trybu wbudowanego i opcji '' python-home'' podczas używania trybu demona. Zobacz: http://blog.dscpl.com.au/2014/09/using-python-virtual-environments-with.html –