简体   繁体   中英

Django deploy to Heroku No module named 'django_heroku'

I'm tryin to deploy to Heroku and before this error I was getting:

ModuleNotFoundError: No module named 'django-tables2'

Then I installed django-heroku via pip install django-heroku, followed the instructions on how to set it up.

I disabled the collect static for heroku pushed my master branch and everything is fine, but once I do:

heroku run python manage.py migrate

I get the:

ModuleNotFoundError: No module named 'django_heroku'

the complete traceback is this:

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'

I have in my settings at the top:

import os
import django_heroku

and in the very bottom:

django_heroku.settings(locals())

in my requirements.txt I have django-heroku

The master branch is updated and I just can find how to fix this.

The problem was that it was not added to the module, it was needed to be added to the virtual env and the do the pip freeze, with that it was solved.

I ran into this issue myself and discovered the problem. This error will happen if the module cannot be found, as the name of the error explains. If the virtual environment containing the module is not included in the code pushed to heroku, then the module cannot be found.

If you are using pipenv as your virtual environment, you will get this error. To fix this, you will need to do the following:

  1. Delete the Pipfile and Pipfile.lock files.

  2. Outside the pipenv,issue the following commands:

python -m venv virtual_environment_name

virtual_environment_name/Scripts/activate (Windows)

source virtual_environment_name/bin/activate (Mac)

  1. Install the packages previously installed again.

  2. Run the git add. and git commit -am "Some text here" commands.

You should be good to go!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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