Python3.9.2环境安装Django1.7.1项目requirements.txt依赖报错求助
核心问题根因
你遇到的所有安装报错的核心原因是版本兼容性严重不匹配:Django 1.7.1 最高仅支持 Python 3.4,和你当前使用的 Python 3.9.2 完全不兼容,依赖包的版本和 Python 3.9 也存在大量适配问题。
解决方案
方案一:降级Python版本(最稳妥,无需修改旧项目代码)
卸载当前Python 3.9环境,重新安装Python 3.4.x版本,重建虚拟环境后再执行pip install -r main_requirements.txt即可解决90%以上的安装报错。
方案二:保留Python 3.9,逐包适配调整
如果必须使用Python 3.9环境,需要对依赖包做针对性调整,逐个解决报错:
- matplotlib:默认拉取的2.2.4版本不支持Python 3.9,且编译缺少freetype、png开发库,直接指定安装兼容版本即可:
pip install matplotlib==3.4.3 - configobj:默认拉取的最新版适配有问题,指定安装兼容Python 3.9的版本:
pip install configobj==5.0.6 - psycopg2:不需要安装源码编译版本,直接安装预编译的二进制版本即可:
pip install psycopg2-binary - pysqlite:Python 3.9已经内置sqlite3完整支持,直接删除requirements.txt里的pysqlite条目即可,无需额外安装
- pyOpenSSL:指定安装兼容版本:
pip install pyOpenSSL==21.0.0 - unittest2:Python 3.9已经内置unittest模块的全部功能,unittest2是面向Python2/旧版本Python3的兼容包,直接删除requirements.txt里的该条目即可
- xgboost:指定安装支持Python 3.9的预编译版本:
pip install xgboost==1.5.2
requirements.txt调整参考
修改对应条目后再执行安装即可:
# 替换原来的无版本条目 configobj==5.0.6 matplotlib==3.4.3 psycopg2-binary pyOpenSSL==21.0.0 xgboost==1.5.2 # 删除以下两行 # pysqlite # unittest2
注意:Django 1.7.1和Python 3.9存在大量语法兼容问题,即使依赖安装完成,运行项目也会触发大量报错,建议同步升级Django到3.2.x等LTS版本,同时调整项目中适配旧版Django的语法。
内容的提问来源于stack exchange,提问作者djangodeveloper
相关产品推荐
相关产品推荐

