簡體   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