Heroku部署Hello World应用遇ModuleNotFoundError报错求助
解决Heroku部署Python Web应用的ModuleNotFoundError问题
针对你遇到的ModuleNotFoundError: No module named 'hello.py'; 'hello' is not a package报错,以下是针对性的排查和解决步骤:
修正Procfile配置
Heroku通过Procfile确定启动命令,若你的入口文件是根目录下的hello.py,且文件内有可执行的Web应用实例(比如Flask的app = Flask(__name__)),Procfile必须写成:web: gunicorn hello:app注意不要带
.py后缀——gunicorn需要的是模块名,不是文件名,写hello.py:app会导致Heroku将hello.py当作模块名去查找,自然找不到。核对项目结构
如果你试图将hello作为Python包使用,必须在hello目录下创建空的__init__.py文件,同时将应用代码移至该目录内,此时Procfile要调整为web: gunicorn hello.app:app(假设app是__init__.py中定义的应用实例)。如果只是单文件hello.py,确保它在项目根目录,不需要额外创建包结构。确认依赖配置
检查requirements.txt是否包含gunicorn,Heroku依赖它运行Python Web应用,文件内容需包含:gunicorn flask # 替换为你实际使用的Web框架,比如django等本地预验证
在本地终端执行gunicorn hello:app,如果本地也出现相同报错,说明问题出在本地配置而非Heroku环境,先在本地调试解决后再推送代码。
内容的提问来源于stack exchange,提问作者Joe Bonds
相关产品推荐
相关产品推荐

