Heroku部署Django应用:执行Heroku local命令遇错求助
Django应用Heroku本地部署报错问题
问题详情
- 部署Django应用到Heroku时,执行
heroku local命令报错,已尝试多种调整并查阅官方文档,问题未解决 - 直接在主目录运行
gunicorn social_site.wsgi一切正常,但Heroku相关操作失败 - 已创建Procfile,内容为:
web: gunicorn social_site.wsgi(social_site为应用名称) - 错误信息如下:
[WARN] No ENV file found 12:34:56 PM web.1 | Error: class uri 'social_site.wsgi' invalid or not found: 12:34:56 PM web.1 | 12:34:56 PM web.1 | [Traceback (most recent call last): 12:34:56 PM web.1 | File "/usr/local/lib/python3.9/site-packages/gunicorn/util.py", line 135, in load_class 12:34:56 PM web.1 | mod = importlib.import_module('.'.join(parts)) 12:34:56 PM web.1 | File "/usr/local/Cellar/python@3.9/3.9.16/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module 12:34:56 PM web.1 | return _bootstrap._gcd_import(name[level:], package, level) 12:34:56 PM web.1 | File "<frozen importlib._bootstrap>", line 1030, in _gcd_import 12:34:56 PM web.1 | File "<frozen importlib._bootstrap>", line 1007, in _find_and_load 12:34:56 PM web.1 | File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked 12:34:56 PM web.1 | ModuleNotFoundError: No module named 'social_site' 12:34:56 PM web.1 | ]
排查与解决方法
- 确认目录结构:Procfile必须和
manage.py放在同一目录,同时social_site目录下要存在wsgi.py文件 - 添加环境变量文件:在项目根目录创建
.env文件,写入PYTHONPATH=.,让Heroku local能正确识别应用模块路径 - 对齐虚拟环境:确保Heroku local使用的虚拟环境和本地运行gunicorn的环境一致,可通过
pip list检查依赖版本是否匹配 - 调整Procfile路径:若wsgi文件不在根目录的social_site下,可修改Procfile为
web: gunicorn --chdir social_site social_site.wsgi(根据实际目录结构调整路径)
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

