1

我正在尝试在 Heroku 上部署我的简单 Django Web 应用程序,但构建失败并出现以下错误:

       Successfully installed asgiref-3.3.4 dj-database-url-0.5.0 django-3.2 django-heroku-0.3.1 gunicorn-20.1.0 numpy-1.20.2 pillow-8.2.0 psycopg2-2.8.6 pytz-2021.1 sqlparse-0.4.1 torch-1.8.1 torchvision-0.9.1 typing-extensions-3.7.4.3 whitenoise-5.2.0

-----> $ python pytorch_django/manage.py collectstatic --noinput

       Traceback (most recent call last):

         File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/__init__.py", line 237, in fetch_command

           app_name = commands[subcommand]

       KeyError: 'collectstatic'

       During handling of the above exception, another exception occurred:

       Traceback (most recent call last):

         File "/tmp/build_6b3954ac/pytorch_django/manage.py", line 22, in <module>

           main()

         File "/tmp/build_6b3954ac/pytorch_django/manage.py", line 18, in main

           execute_from_command_line(sys.argv)

         File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line

           utility.execute()

         File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute

           self.fetch_command(subcommand).run_from_argv(self.argv)

         File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/__init__.py", line 244, in fetch_command

           settings.INSTALLED_APPS

         File "/app/.heroku/python/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__

           self._setup(name)

         File "/app/.heroku/python/lib/python3.9/site-packages/django/conf/__init__.py", line 69, in _setup

           self._wrapped = Settings(settings_module)

         File "/app/.heroku/python/lib/python3.9/site-packages/django/conf/__init__.py", line 170, in __init__

           mod = importlib.import_module(self.SETTINGS_MODULE)

         File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module

           return _bootstrap._gcd_import(name[level:], package, level)

         File "<frozen importlib._bootstrap>", line 1030, in _gcd_import

         File "<frozen importlib._bootstrap>", line 1007, in _find_and_load

         File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked

         File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed

         File "<frozen importlib._bootstrap>", line 1030, in _gcd_import

         File "<frozen importlib._bootstrap>", line 1007, in _find_and_load

         File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked

       ModuleNotFoundError: No module named 'project'

 !     Error while running '$ python pytorch_django/manage.py collectstatic --noinput'.

我已经在 Heroku 上成功部署了其他 Django 应用程序,但我不明白这里出了什么问题。是什么KeyError: 'collectstatic'意思或它来自哪里?

在本地,该应用程序运行良好,也python manage.py collectstatic运行良好。有什么问题?它可能与 Python 3.9 有关吗?我在本地有 Python 3.8。

编辑:新创建的 Django 应用程序也会发生这种情况 - 代码没有任何变化。

4

1 回答 1

0

问题是我自己的错,但不是在 Django 应用程序中,而是在我的 Heroku 配置中。在我的 Heroku 环境变量 ( Settings > Config Vars) 中,我DJANGO_SETTINGS_MODULE错误地将project.prod_settings. 但是,我的 Django 项目被调用pytorch_django,所以我不得不将它设置为pytorch_django.prod_settings.

这就是导致错误的原因ModuleNotFoundError: No module named 'project'。更改DJANGO_SETTINGS_MODULE为正确的路径解决了问题。

于 2021-04-11T09:03:57.800 回答