Windows环境下Django+Waitress部署Heroku时PORT环境变量配置失败及端口绑定超时问题求助
Windows环境下Django+Waitress部署Heroku时PORT环境变量配置失败及端口绑定超时问题求助
我现在在Windows上用Waitress部署Django到Heroku(因为Gunicorn现在没法在Windows上运行了),折腾端口配置的时候卡壳了,来求助大家!
一开始我把端口号硬编码的时候,程序能正常启动运行,但换成环境变量动态获取端口就各种报错。
我的当前配置
- Procfile 内容:
web: waitress-serve --port=$PORT [projectname].wsgi:application
- .env 文件内容:
WEB_CONCURRENCY=2 PORT=$PORT
- settings.py 里的相关配置代码:
import environ from environ import Env env = Env() ... PORT = env('PORT')
遇到的具体错误
- 本地运行
heroku local时,直接抛出类型转换错误:
ValueError: invalid literal for int() with base 10: '$PORT'
- 部署到Heroku后,出现端口绑定超时的致命错误:
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
我尝试过的方法和疑问
我查了很多资料,都说Windows环境下用$PORT这种写法是不对的,应该用%PORT%?但我替换后还是没解决问题。另外我还试过直接写PORT不带任何符号(看Waitress的官方文档里好像是这么示例的),也不行。
现在我搞不清楚两个核心问题:
- Windows下适配Heroku和Waitress的环境变量正确语法到底是什么?
- 如果有专门的Windows写法,是不是需要同时在
.env和Procfile里都改成对应的格式?
备注:内容来源于stack exchange,提问作者relp lamfred
相关产品推荐
相关产品推荐

