2016-12-03 14 views
1

아파치 2.4.7이 설치된 우분투 서버에 내 장고 앱을 설치하고 가상 환경에서 py3.5.2를 사용하도록 구성했습니다.Django 아파치 wsgi가 파이썬 버전을 변경합니다

그러나 오류에서 볼 수 있듯이 3.5에서 시작하여 기본값은 3.4입니다. 이런 일이 왜

설명해주십시오 :

WSGIScriptAlias//var/www/intranet/intranet/wsgi.py 
#WSGIPythonPath /var/www/intranet/:/var/www/intranet/venv/lib/python3.5/site-packages 

WSGIDaemonProcess intranet.example.com python-path=/var/www/intranet:/var/www/venv/lib/python3.5/site-packages 
WSGIProcessGroup intranet.example.com 

<Directory /var/www/intranet/intranet> 
<Files wsgi.py> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

내가 잘못 뭐하는 거지 :

여기
SyntaxError at/

invalid syntax (forms.py, line 2) 

Request Method:  GET 
Request URL: http://intranet.example.com/ 
Django Version:  1.10.1 
Exception Type:  SyntaxError 
Exception Value:  

invalid syntax (forms.py, line 2) 

Exception Location:  /var/www/intranet/formater/views.py in <module>, line 7 
Python Executable: /usr/bin/python3 
Python Version:  3.4.3 
Python Path:  

['/var/www/intranet', 
'/var/www/venv/lib/python3.5/site-packages', 
'/usr/lib/python3.4', 
'/usr/lib/python3.4/plat-x86_64-linux-gnu', 
'/usr/lib/python3.4/lib-dynload', 
'/usr/local/lib/python3.4/dist-packages', 
'/usr/lib/python3/dist-packages', 
'/var/www/intranet', 
'/var/www/intranet/venv/lib/python3.5/site-packages'] 

내 apache2.conf의 파일입니다 :

/var/www/venv/lib/python3.5/site-packages 
/usr/lib/python3.4 

아래 전체 오류를 참조하십시오 이리?

+0

[Ubuntu 11의 Apache 2에서 virtualenv를 사용하는 [Multiple Django applications]의 가능한 복제본 (http://stackoverflow.com/questions/9991461/multiple-django-applications-using-virtualenv-on-apache-2-on- 우분투 -11) – user312016

+0

중복되지 않습니다. 그 질문은 하나의 서버에있는 여러 Django 앱에 관한 것입니다. 하나의 앱만 있습니다. 내 문제는 내 애플 리케이션을 실행하는 파이썬의 버전입니다. – rwms

답변

3

Apache 용 mod_wsgi 모듈은 특정 Python 버전 용으로 컴파일됩니다. 다른 Python 버전을 사용하여 다른 Python 버전을 사용하여 실행하도록 만들 수는 없습니다. ,

는 파이썬 3.4 컴파일 원래 있었다면 당신은 파이썬 3.5로 실행 mod_wsgi에 가질 수있는 유일한 방법 : 이것은에서 파이썬 가상 환경의 사용에 대한 mod_wsgi에 문서에 언급 된 클리어 해당 버전의 mod_wsgi를 제거하고 Python 3.5 용으로 컴파일 된 mod_wsgi 버전을 빌드/설치하는 것입니다.

0

문제의 원인은 Graham Dumpleton의 대답이었습니다. 누군가가 저와 같은 문제에 직면하는 데 도움이 될 수 있도록 좀 더 자세한 정보를 제공하고 싶습니다.

우분투 서버 14.04에는 파이썬 3.5.2에 대한 공식적인 레포가 없습니다. this one과 같이 지원되지 않는 repo를 사용하는 대신이 간단한 튜토리얼 here을 사용하여 Python 3.5.2를 소스에서 컴파일했습니다. 많은 후프를 뛰어 넘은 후 다른 라이브러리 경로 때문에 파이썬 3.5.2 용 mod_wsgi를 설치할 수 없었습니다.

파이썬, 아파치, 라이브러리 등 모든 것을 제거하고 이번에는 파이썬 3.4를 사용하여 처음부터 모든 것을 설치했다.

공식적으로 우분투 14.04에서 지원되며 내 프로젝트에서는 호환성 문제가 없음을 알았습니다. 핍에서 python3, python3-핍, 아파치, 아파치-DEV, libapache2 - 모드 - WSGI-py3 및 : APT에서 :

그래서 여기 내 설치하는 것에 대해 후보의 Django, mod-wsgi, virtualenv (venv를 사용하려는 경우).

"/etc/apache2/apache.conf"를 구성하고 "apache2ctl configtest"를 실행하고 서비스를 다시 시작하십시오. 추가 도움이 필요하시면이 가이드 here을 참조하십시오.