![](/img/trans.png)
[英]"No module named 'django_heroku' " app won't start on Heroku
[英]Django deploy to Heroku No module named 'django_heroku'
我正在尝试部署到 Heroku 并且在此错误之前我得到:
ModuleNotFoundError:没有名为“django-tables2”的模块
然后我通过 pip install django-heroku 安装了 django-heroku,按照如何设置它的说明进行操作。
我禁用了收集 static 的 heroku 推送我的主分支,一切都很好,但是一旦我这样做:
heroku run python manage.py migrate
我得到:
ModuleNotFoundError: No module named 'django_heroku'
完整的追溯是这样的:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute()
File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/base.py", line 341, in run_from_argv
connections.close_all()
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/utils.py", line 225, in close_all
for alias in self:
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/utils.py", line 219, in __iter__
return iter(self.databases)
File "/app/.heroku/python/lib/python3.7/site-packages/django/utils/functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/utils.py", line 153, in databases
self._databases = settings.DATABASES
File "/app/.heroku/python/lib/python3.7/site-packages/django/conf/__init__.py", line 76, in __getattr__
self._setup(name)
File "/app/.heroku/python/lib/python3.7/site-packages/django/conf/__init__.py", line 63, in _setup
self._wrapped = Settings(settings_module)
File "/app/.heroku/python/lib/python3.7/site-packages/django/conf/__init__.py", line 142, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/app/.heroku/python/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/app/GPC/settings.py", line 14, in <module>
import django_heroku
ModuleNotFoundError: No module named 'django_heroku'
我在顶部的设置中有:
import os
import django_heroku
在最底层:
django_heroku.settings(locals())
在我的 requirements.txt 我有 django-heroku
主分支已更新,我只能找到解决此问题的方法。
问题是它没有添加到模块中,需要将其添加到虚拟环境中并执行 pip 冻结,这样就解决了。
我自己遇到了这个问题并发现了问题。 如错误名称所述,如果找不到模块,则会发生此错误。 如果推送到 heroku 的代码中不包含包含该模块的虚拟环境,则无法找到该模块。
如果你使用 pipenv 作为你的虚拟环境,你会得到这个错误。 要解决此问题,您需要执行以下操作:
删除 Pipfile 和 Pipfile.lock 文件。
在 pipenv 之外,发出以下命令:
python -m venv virtual_environment_name
virtual_environment_name/Scripts/activate
(Windows)
source virtual_environment_name/bin/activate
(Mac)
再次安装之前安装的软件包。
运行git add.
和git commit -am "Some text here"
命令。
你应该很高兴去!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.