首页 > 解决方案 > Django 部署到 Heroku 没有名为 'django_heroku' 的模块

问题描述

我正在尝试部署到 Heroku,在此错误之前我得到了:

ModuleNotFoundError:没有名为“django-tables2”的模块

然后我通过 pip install django-heroku 安装了 django-heroku,按照如何设置它的说明进行操作。

我禁用了 heroku 的 collect static 推送了我的 master 分支,一切都很好,但是一旦我这样做了:

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

主分支已更新,我只能找到解决此问题的方法。

标签: pythondjangoheroku

解决方案


问题是它没有添加到模块中,需要将它添加到虚拟环境中并执行 pip freeze,这样它就解决了。


推荐阅读