Heroku部署Python代码失败,无法获取temp/build文件如何解决
你遇到的构建挂起问题根因是缺少Heroku Python应用要求的标准配置文件:当项目中仅存在setup.py不存在requirements.txt时,Heroku的Python构建包会自动生成临时依赖配置尝试以开发模式安装当前项目,该过程无交互响应就会无限超时。
解决步骤
1. 新增requirements.txt文件
在项目根目录创建名为requirements.txt的文件,你当前的应用没有第三方依赖,文件可以留空,后续如果引入第三方库再往文件中追加对应依赖名称及版本即可。
2. 新增Procfile启动配置文件
在项目根目录创建名为Procfile的文件(注意首字母大写,无文件后缀),写入以下内容指定应用启动方式:
web: python setup.py
3. 修改代码中硬编码的端口配置
Heroku会通过环境变量PORT动态分配服务端口,你当前硬编码的3300端口无法在部署环境使用,按以下方式修改setup.py:
首先在文件顶部导入os模块:
import os from socket import AF_INET, socket, SOCK_STREAM from threading import Thread
再替换端口定义逻辑:
# 原有硬编码 PORT = 3300 替换为以下内容 PORT = int(os.environ.get('PORT', 3300))
4. 重新提交部署
修改完成后重新执行提交推送即可完成部署:
git add . git commit -m "fix deployment config" git push heroku master
- 注意:当前你实现的是原生TCP Socket服务,Heroku的前端路由仅支持HTTP/HTTPS及WebSocket协议,部署成功后无法直接通过TCP连接访问,后续修改代码时建议调整为WebSocket实现适配平台规则。
内容的提问来源于stack exchange,提问作者Tyler Silva
相关产品推荐
相关产品推荐

