本文介绍了Heroku:ModuleNotFoundError:没有名为"requests"的模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将Django程序部署到Heroku.该应用程序在使用Anaconda和Python 3.5的本地计算机上成功运行.我无法将其推送到Heroku.根据命令

I am trying to deploy a Django program to Heroku. The application runs successfully on my local machine, which uses Anaconda and Python 3.5. I cannot get it to push to Heroku. Upon the command

>git push heroku master

remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote:  !     Python has released a security update! Please consider upgrading to python-3.6.8
remote:        Learn More: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> Installing python-3.6.2
remote: -----> Installing pip
remote: -----> Installing dependencies with Pipenv 2018.5.18…
remote:        Installing dependencies from Pipfile.lock (958efe)…
remote: -----> Installing SQLite3
remote: -----> $ python manage.py collectstatic --noinput
remote:        Traceback (most recent call last):
remote:          File "manage.py", line 15, 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 381, in execute_from_command_line
remote:            utility.execute()
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 357, in execute
remote:            django.setup()
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
remote:            apps.populate(settings.INSTALLED_APPS)
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/registry.py", line 89, in populate
remote:            app_config = AppConfig.create(entry)
remote:          File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/config.py", line 90, 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 'requests'
remote:
remote:  !     Error while running '$ python manage.py collectstatic --noinput'.
remote:        See traceback above for details.
remote:
remote:        You may need to update application code to resolve this error.
remote:        Or, you can disable collectstatic for this application:
remote:
remote:           $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote:        https://devcenter.heroku.com/articles/django-assets
remote:  !     Push rejected, failed to compile Python app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !   Push rejected to [redacted].

我不确定为什么无法将 requests 模块安装为Heroku中的 pip 模块.它在我的 requirements.txt 文件中:

I'm not sure why I can't get the requests module to be pip installed in Heroku. It is in my requirements.txt file:

Django==2.1.7
dj-database-url==0.5.0
dj-static==0.0.6
gunicorn==19.9.0
Unipath==1.1
python-decouple==3.1
Pillow==3.3.0
Markdown==3.0.1
bleach==3.1.0
psycopg2==2.7.7
whitenoise==4.1.2
requests==2.21.0
requests-oauthlib==1.0.0

推荐答案

Heroku版本的输出显示,除了具有 Pipfile Pipfile.lock 您的 requirements.txt .

The output from your Heroku build shows that you have a Pipfile and Pipfile.lock in addition to your requirements.txt.

您需要选择使用 pip (使用 requirements.txt )或Pipenv(使用 Pipfile Pipfile.lock ).如果所有三个文件都存在,Heroku将随Pipenv一起安装,而忽略您的 requirements.txt 文件.

You need to choose between using pip (using requirements.txt) or Pipenv (using Pipfile and Pipfile.lock). If all three files are present, Heroku will install with Pipenv, ignoring your requirements.txt file.

任何一个

  • 将您的要求移至您的 Pipfile ,并在本地运行Pipenv进行安装并更新您的 Pipfile.lock ,删除您的 requirements.txt ,提交并推送(以使用Pipenv),或
  • 在本地删除 Pipfile Pipfile.lock ,在本地使用 pip (或 pip-tools 或类似名称),提交和推送(以使用 pip ).
  • move your requirements to your Pipfile and run Pipenv locally to install them and update your Pipfile.lock, delete your requirements.txt, commit, and push (to use Pipenv), or
  • delete the Pipfile and Pipfile.lock, use pip (or pip-tools or similar) locally, commit, and push (to use pip).

这篇关于Heroku:ModuleNotFoundError:没有名为"requests"的模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-31 10:23