Heroku上的Django:KeyError:"collectstatic"



我正试图在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应用程序也会发生这种情况-代码whatsover没有更改。

问题是我自己的错,但不是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更改为正确的路径解决了问题。

最新更新