不升级Python3.7.6,如何生成适配Python3.11.3的requirements.txt
不升级本地Python版本生成Heroku兼容requirements.txt的方案
核心思路
无需升级本地Python 3.7.6,通过以下两种方式生成适配Heroku支持的3.9.16/3.10.11/3.11.3版本的requirements.txt:
方法1:创建目标版本虚拟环境生成
- 安装
pyenv或virtualenv工具,用于创建指定Python版本的隔离环境 - 以pyenv为例,安装对应Heroku支持的版本(比如3.9.16):
pyenv install 3.9.16 - 创建并激活虚拟环境:
pyenv local 3.9.16 python -m venv heroku-env # Windows系统激活命令 heroku-env\Scripts\activate # macOS/Linux系统激活命令 source heroku-env/bin/activate - 在激活的环境中安装所有所需依赖:
pip install certifi click dataclasses Flask Flask-SQLAlchemy greenlet gunicorn importlib-metadata itsdangerous Jinja2 MarkSafe SQLAlchemy typing-extensions Werkzeug zipp - 生成requirements.txt:
pip freeze > requirements.txt
方法2:手动编写兼容版本列表
直接编写requirements.txt,指定同时兼容Python 3.7.6和Heroku目标版本的依赖版本:
certifi>=2022.12.7,<2025.0.0 click>=8.0.0,<9.0.0 dataclasses>=0.6 Flask>=2.0.0,<3.0.0 Flask-SQLAlchemy>=2.5.0,<3.1.0 greenlet>=1.1.0,<3.0.0 gunicorn>=20.1.0,<22.0.0 importlib-metadata>=4.0.0,<7.0.0 itsdangerous>=2.0.0,<3.0.0 Jinja2>=3.0.0,<4.0.0 MarkSafe>=2.0.0,<3.0.0 SQLAlchemy>=1.4.0,<2.0.0 typing-extensions>=4.0.0,<5.0.0 Werkzeug>=2.0.0,<3.0.0 zipp>=3.0.0,<4.0.0
验证步骤
- 本地执行
pip check,确认依赖版本与Python 3.7.6兼容 - 部署到Heroku测试环境,检查应用能否正常启动运行
内容的提问来源于stack exchange,提问作者jamescadigan22
相关产品推荐
相关产品推荐

