前提・実現したいこと
Heroku のチュートリアル「Getting Started on Heroku with Python」を進めています。
Django アプリのコードを修正して、Heroku に反映させるというところで ModuleNotFoundError が発生しました。
Push local changes
https://devcenter.heroku.com/articles/getting-started-with-python#push-local-changes
ローカル環境では問題なく動作しているので、エラーメッセージから察するに Heroku 側で requests モジュールがインストールされていないのだと思うのですが、原因が分からないという状況です。
発生している問題・エラーメッセージ
heroku open でブラウザを起動すると、下記のエラーが表示されます。
ModuleNotFoundError at / No module named 'requests' Request Method: GET Request URL: https://floating-escarpment-15189.herokuapp.com/ Django Version: 2.0 Exception Type: ModuleNotFoundError Exception Value: No module named 'requests' Exception Location: /app/hello/views.py in <module>, line 1 Python Executable: /app/.heroku/python/bin/python Python Version: 3.6.5 Python Path: ['/app', '/app/.heroku/python/bin', '/app', '/app/.heroku/python/lib/python36.zip', '/app/.heroku/python/lib/python3.6', '/app/.heroku/python/lib/python3.6/lib-dynload', '/app/.heroku/python/lib/python3.6/site-packages'] Server time: Thu, 17 May 2018 13:43:51 +0000
git push heroku master の時点では、エラーは発生していないように見えます。
bash
1$ git push heroku master 2Counting objects: 3, done. 3Delta compression using up to 4 threads. 4Compressing objects: 100% (3/3), done. 5Writing objects: 100% (3/3), 412 bytes | 412.00 KiB/s, done. 6Total 3 (delta 1), reused 0 (delta 0) 7remote: Compressing source files... done. 8remote: Building source: 9remote: 10remote: -----> Python app detected 11remote: Skipping installation, as Pipfile.lock hasn't changed since last deploy. 12remote: -----> $ python manage.py collectstatic --noinput 13remote: 119 static files copied to '/tmp/build_78472339d181c3faffcdd5369d7e1c61/staticfiles', 132 post-processed. 14remote: 15remote: -----> Discovering process types 16remote: Procfile declares types -> web 17remote: 18remote: -----> Compressing... 19remote: Done: 62.8M 20remote: -----> Launching... 21remote: Released v7 22remote: https://floating-escarpment-15189.herokuapp.com/ deployed to Heroku 23remote: 24remote: Verifying deploy... done. 25To https://git.heroku.com/floating-escarpment-15189.git 26 e2295d5..8ef9710 master -> master
該当のソースコード
Pipfile
[[source]] url = "https://pypi.python.org/simple" verify_ssl = true [packages] dj-database-url = "*" django = "*" gunicorn = "*" psycopg2 = "*" whitenoise = "*" requests = "*" [requires] python_version = "3.6"
python
1import requests 2from django.shortcuts import render 3from django.http import HttpResponse 4 5from .models import Greeting 6 7# Create your views here. 8def index(request): 9 r = requests.get('http://httpbin.org/status/418') 10 print(r.text) 11 return HttpResponse('<pre>' + r.text + '</pre>') 12 13def db(request): 14 15 greeting = Greeting() 16 greeting.save() 17 18 greetings = Greeting.objects.all() 19 20 return render(request, 'db.html', {'greetings': greetings})
試したこと
フォルダ内に requirements.txt を置いて push してみましたが、エラー内容は変わりませんでした。
certifi==2018.4.16 chardet==3.0.4 dj-database-url==0.5.0 Django==2.0.5 django-heroku==0.3.1 gunicorn==19.8.1 idna==2.6 psycopg2==2.7.4 pytz==2018.4 requests==2.18.4 urllib3==1.22 whitenoise==3.3.1
補足情報(FW/ツールのバージョンなど)
・Heroku環境
Free アカウント
・ローカル環境
macOS 10.12.6
Python 3.6.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。