Heroku执行python3 app.py提示bash: app.py: command not found错误:原因及解决
问题分析与修复方案
嘿,这个错误我之前在Heroku部署项目时也碰到过,咱们一步步来解决:
错误本质
bash: app.py: command not found 其实就是说Heroku的运行容器里找不到你指定的app.py文件,大概率是下面两种情况导致的:
- 本地的
app.py没被正确推送到Heroku服务器 - 你执行命令时的路径和
app.py实际所在路径不匹配
具体修复步骤
1. 先确认本地文件与Git提交状态
- 先在本地当前目录(
D:\Py\PyDiscord\coronabot\covid19krbot)执行dir(Windows)或ls(Mac/Linux),确认app.py确实存在 - 检查
.gitignore文件,看看app.py是不是被加入了忽略列表。如果被忽略了,把它从.gitignore里删掉,然后执行以下命令把文件推送到Heroku:
(如果你的主分支不是git add app.py git commit -m "Include app.py in Heroku deployment" git push heroku mainmain,换成对应的分支名比如master)
2. 验证Heroku服务器上的文件
执行下面的命令查看Heroku容器里的文件列表,确认app.py已经上传:
heroku run ls
如果输出里看不到app.py,说明代码推送失败,回到第一步重新操作。
3. 调整命令路径(如果文件不在根目录)
如果你的app.py在子目录里(比如src/app.py),那执行命令时要带上完整路径:
heroku run python3 src/app.py
4. 推荐:用Procfile规范启动命令
Heroku官方更推荐用Procfile来定义启动命令,避免每次手动输入出错:
- 在项目根目录创建一个名为
Procfile(注意没有任何后缀名)的文件,根据你的应用类型写入内容:- 若是Web应用:
web: python3 app.py - 若是后台worker任务:
worker: python3 app.py
- 若是Web应用:
- 提交并推送这个文件到Heroku:
git add Procfile git commit -m "Add Procfile for Heroku deployment" git push heroku main
之后你就不用手动执行heroku run python3 app.py了,Heroku会自动按照Procfile的配置启动你的应用。
内容的提问来源于stack exchange,提问作者Inseo Yang
相关产品推荐
相关产品推荐

