2017-06-07 7 views
1

私はDjango OAuth Toolkit tutorialに従っています。 Django OAuth Toolkitがインストールされたローカルサーバーで正常にアプリケーションを実行しています。Heroku Python Djangoアプリケーションのデプロイメントの失敗: 'oauth2_provider'という名前のモジュールがありません

私がHerokuにデプロイしようとすると、 '$ python manage.py collectstatic --noinput'を実行しているときに、「ModuleNotFoundError:No oauth2_provider」という名前のモジュールがエラーになります。

類似の質問でスタックオーバーフローを検索しようとしましたが、見つからなかった。私はcollectstaticに関するStack Overflowに関する多くの質問を見ましたが、それは私の問題だとは思いません。

私のバックトレースはほどです:私は、Python 3.6.1使用しています

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    # Disable Django's own staticfiles handling in favour of WhiteNoise, for 
    # greater consistency between gunicorn and `./manage.py runserver`. See: 
    # http://whitenoise.evans.io/en/stable/django.html#using-whitenoise-in-development 
    'whitenoise.runserver_nostatic', 
    'django.contrib.staticfiles', 
    'oauth2_provider', 
    'corsheaders', 
] 

と私requirements.txtはほどです:

remote: -----> Python app detected 
remote: -----> Installing requirements with pip 
remote: 
remote: -----> $ python manage.py collectstatic --noinput 
remote:  Traceback (most recent call last): 
remote:   File "manage.py", line 10, in <module> 
remote:   execute_from_command_line(sys.argv) 
remote:   File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line 
remote:   utility.execute() 
remote:   File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 337, in execute 
remote:   django.setup() 
remote:   File "/app/.heroku/python/lib/python3.6/site-packages/django/__init__.py", line 27, in setup 
remote:   apps.populate(settings.INSTALLED_APPS) 
remote:   File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/registry.py", line 85, in populate 
remote:   app_config = AppConfig.create(entry) 
remote:   File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/config.py", line 94, in create 
remote:   module = import_module(entry) 
remote:   File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module 
remote:   return _bootstrap._gcd_import(name[level:], package, level) 
remote:   File "<frozen importlib._bootstrap>", line 978, in _gcd_import 
remote:   File "<frozen importlib._bootstrap>", line 961, in _find_and_load 
remote:   File "<frozen importlib._bootstrap>", line 948, in _find_and_load_unlocked 
remote:  ModuleNotFoundError: No module named 'oauth2_provider' 
remote: 
remote: !  Error while running '$ python manage.py collectstatic --noinput'. 
remote:  See traceback above for details. 

私のsettings.pyインストール済みのアプリはほどです。

dj-database-url==0.4.1 
Django==1.11.1 
gunicorn==19.6.0 
psycopg2==2.6.2 
whitenoise==3.2 

答えて

3

あなたのrequirements.txtファイルにこのパッケージがありません。だからdjango-oauth-toolkitを追加し、それがパッケージ「ジャンゴ - OAuthのツールキット」をインストール

+0

あなたは学者で、紳士です!ありがとう@mateuszb。これはトリックでした。この問題を抱えている人は、要件ファイルにもdjango-cors-middlewareを追加する必要がありました。私はdjangoのnoobです。なぜrequirements.txtファイルにこれらの行がなければローカルで動作するのか正確にはわかりませんが、私がherokuにプッシュすると、それらが必要になります。うーん。 – GW1732

+0

@ GW1732両方のパッケージが既にシステムにインストールされているために動作していました;)別の環境(例えばHeroku)を使用している場合、インストールするパッケージを明示的に指定する必要があります。) – mateuszb

+0

Aha。ありがとうございました! – GW1732

0

てみてください動作するはずです、実行します。

pip install -U django-oauth-toolkit 

または

pip3 install -U django-oauth-toolkit 

は別の修正があなたのPythonのバージョンをアップグレードすることができ、私はPython 2.7でこの問題を抱えていましたが、Python 3.5ではそうではありませんでした。

関連する問題