2017-10-23 11 views
-1

サーバにDjango (v1.11.6)アプリがあり、Python v2.7を使用していました。サーバ上のdjangoアプリケーション: 'django.urls'というモジュールはありません

私は今、私は私のブラウザで次のエラーを取得するsudo service apache2再起動を実行する場合ただし、(virtualenvを使用していない)Python 3.5を使用しています:

ImportError at/
No module named 'django.urls' 
Request Method: GET 
Request URL: https://dev.ga.coach/ 
Django Version: 1.8.7 
Exception Type: ImportError 
Exception Value:  
No module named 'django.urls' 

Python Executable: /usr/bin/python3 
Python Version: 3.5.2 

を私はpython3 manage.py runserverを実行すると、私はエラーを取得していません。

私はsudo pip freeze | grep -i 'django'を実行すると、私は次を得る:あなたのエラーで見ることができるよう

Django==1.11.6 
django-allauth==0.33.0 
django-filter==1.0.4 
django-rest-auth==0.9.1 
djangorestframework==3.6.3 
djangorestframework-jwt==1.11.0 
+0

また、djangoを実行するときには別の環境を使用しています(実際には1.8.7ではなく1.11.6を使用していることがわかります)。どのような環境であなたのApacheが動作しているのかを調べる必要があります – Sayse

+0

@Sayseあなたは正しいです!どのようにApacheのdjangoのバージョンを変更するには? – zinon

+0

このコマンドを実行してください: 'sudo pip freeze | grep -i 'django''と出力をあなたのQに投稿してください –

答えて

0

Apacheの設定は、ジャンゴを使用しているが1.8.7。そして、あなたはDjangoの1.8でサポートされていなかったのURL(urls.py内部url(r'^users/', include('users.urls'), name='users')を含むための新しい方法を使用している。

をあなたは、Python 3.5へのpython 2.7から切り替えているので、それはあなたのmod_wsgiモジュールがまだのpythonでコンパイルしたものです非常に可能性があります。2.7ここWSGI docsはそのことについて言うことです:。

mod_wsgiを持つPythonの仮想環境を使用して、それは非常にそれがmod_wsgiを、もともと用にコンパイルされたのと同じPythonのインストール を使用して作成されていることが重要 であることがあります Python virtual enviを使用することはできませんmod_wsgiに別のPython バージョン、あるいは別のPythonインストールを使用させるように強制してください。

たとえば、mod_wsgiが元々mod_wsgiがPython 2.7用にコンパイルされたときに、mod_wsgiにPython仮想マシン を使用させることはできません。これは、最初にコンパイルされた Pythonインストール用のPythonライブラリが にmod_wsgiモジュールに直接リンクされているためです。つまり、Pythonはmod_wsgi内に埋め込まれています。 mod_wsgiを使用すると、 Pythonプログラムを実行してインタープリタを実行しないため、なぜあなたは 別のPythonインストールを使用することができません。

したがって、mod_wsgiをpython 3.5を使用して再インストールしてみてください。そうすれば、Python 3.5でインストールしたDjangoパッケージを見つけることができます。

+0

Apacheでdjangoのバージョンを変更するには? – zinon

+0

それは別の質問ですが、ここには複数の回答があります。それはあなたがvirtualenvに対してそれを実行するかどうかによって異なります。もしそうでなければ、 'pip install Django == 1.11.6'を実行して、適切なバージョンのDjangoをマシンにインストールしてください。詳細については、[ApacheでDjangoを実行する際のDjangoのドキュメント](https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/)を参照してください。 – dirkgroten

+0

私は仮想環境を使用していません。私は既に 'django 1.11.6'をインストールしています。以前は1.8.7を使用していました。 – zinon

関連する問題