2016-12-03 5 views
1

私はDjangoアプリケーションをApache2.4.7のUbuntuサーバにインストールし、仮想環境からpy3.5.2を使用するように設定しました。Django Apache wsgiがPythonバージョンを変更しました

しかし、私がエラーで見ることができますから、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を使用している複数のDjangoアプリケーション]の可能な複製(http://stackoverflow.com/questions/9991461/multiple-django-applications-using-virtualenv-on-apache-2-on- ubuntu-11) – user312016

+0

重複していません。その質問は、1つのサーバー上の複数のDjangoアプリケーションに関するものです。 私は1つのアプリしか持っていません。 私の問題は、私のアプリケーションを実行しているPythonのバージョンです。 – rwms

答えて

3

Apache用mod_wsgiモジュールは、特定のPythonバージョン用にコンパイルされます。異なるPythonバージョンを使ってPython仮想環境を指すことで、別のPythonバージョンを使用して実行することはできません。それはPython 3.4のために、元のコンパイルされた場合、

あなたがmod_wsgiをPythonの3.5として実行していることができる唯一の方法:これはでPythonの仮想環境の使用についてのmod_wsgiのドキュメントに記載クリアされますそのバージョンのmod_wsgiをアンインストールし、Python 3.5用にコンパイルされたmod_wsgiのバージョンをビルド/インストールすることです。

0

問題の原因はGraham Dumpletonの答えです。 私は誰かが私と同じ問題に直面するのを助ける場合に備えて、さらに詳しい情報を提供したいだけです。

Ubuntu Server 14.04にPython 3.5.2の正式なレポはありません。 サポートされていないレポをthis oneのように使用するのではなく、この非常に単純なチュートリアルhereを使用してPython 3.5.2をソースからコンパイルしました。 多くのフープをジャンプした後、ライブラリパスが異なるため、Python 3.5.2用のmod_wsgiをインストールできませんでした。

今回はあまりにも多くの時間を費やしていましたが、Python、Apache、ライブラリをすべてアンインストールしました。今回はPython 3.4を使用してすべてをゼロからインストールしました。

これは正式にUbuntu 14.04でサポートされています。私のプロジェクトでは、互換性の問題に気付きませんでした。だからここ

は、インストールする何のために私の候補です: のaptから のpython3、 のpython3-PIP、 apache2の、 のapache2-devを、 とlibapache2-MOD-WSGI-PY3とピップから Django、 mod-wsgi、 virtualenv(venvを使用する予定の場合)

"/etc/apache2/apache.conf"を設定し、 "apache2ctl configtest"を実行してサービスを再起動してください。 詳細はhereをご覧ください。

関連する問題