繁体   English   中英

Django 部署到 Heroku 没有名为“django_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 作为你的虚拟环境,你会得到这个错误。 要解决此问题,您需要执行以下操作:

  1. 删除 Pipfile 和 Pipfile.lock 文件。

  2. 在 pipenv 之外,发出以下命令:

python -m venv virtual_environment_name

virtual_environment_name/Scripts/activate (Windows)

source virtual_environment_name/bin/activate (Mac)

  1. 再次安装之前安装的软件包。

  2. 运行git add. git commit -am "Some text here"命令。

你应该很高兴去!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM