基于Python3.6的旧Django项目适配Python3.10的依赖版本建议
Python3.10适配旧Django项目(原基于Python3.6)的依赖版本建议
背景
原项目基于Python3.6构建,现需在Python3.10的venv虚拟环境中运行,以下是适配后的依赖版本列表及调整说明:
适配后的依赖列表
# 数据库相关 mysqlclient==2.2.5 # 替换原1.3.13:兼容Python3.10,修复驱动兼容性问题 PyMySQL==1.1.0 # 替换原0.9.3:适配Python3.10的连接逻辑 # 工具类库 arrow==1.2.3 # 替换原0.12.1:最后一个兼容Python3.6-3.10的稳定版,API无破坏性变更 requests==2.31.0 # 替换原2.17.1:安全补丁齐全,完全向后兼容 beautifulsoup4==4.12.2 # 替换原4.6.3:兼容Python3.10,修复解析bug lxml==4.9.3 # 替换原4.2.5:性能优化+安全修复,兼容Python3.10 xlsxWriter==3.1.9 # 替换原1.1.1:功能增强,API完全兼容 xlrd==2.0.1 # 替换原1.2.0:支持.xlsx格式,适配Python3.10 msgpack==1.0.7 # 替换原0.5.6:性能提升,兼容Python3.10 bpython==0.24.0 # 替换原0.17.1:修复终端显示问题,支持Python3.10 # 服务与第三方API gunicorn==20.1.0 # 替换原19.9.0:稳定生产版本,完全兼容Python3.10 pymongo==4.6.1 # 替换原3.7.1:向下兼容旧代码,适配Python3.10 pytrends==4.9.2 # 替换原4.4.0:支持Python3.10,适配Google Trends接口 newsapi-python==0.2.6 # 替换原0.2.3:最后一个兼容旧API的版本,支持Python3.10 algoliasearch==2.0.5 # 替换原2.0.4:最后一个2.x版本,兼容Python3.10与旧API firebase-admin==6.2.0 # 替换原4.3.0:适配Python3.10,兼容原代码逻辑 # 数据处理与生成 Faker==19.13.0 # 替换原0.9.1:API基本兼容,支持Python3.10 pandas==1.5.3 # 替换原0.23.4:最后一个支持Python3.10的1.x版本,避免2.x的API大变动 newspaper3k==0.2.8 # 替换原0.2.7:最后一个稳定版,修复依赖兼容问题 feedparser==6.0.10 # 替换原5.2.1:修复RSS解析bug,支持Python3.10 # 爬虫与自动化 selenium==3.141.0 # 替换原3.14.0:最后一个3.x稳定版,支持Python3.10,避免4.x的API变更 google_images_download==2.8.0 # 替换原2.5.0:最后一个可用版本,兼容Python3.10(注意:该库已停止维护) # 文本处理与匹配 langdetect==1.0.7 # 保持原版本:库已停止维护,但本身兼容Python3.10 fuzzywuzzy==0.17.0 # 保持原版本:兼容Python3.10,无需更换 python-levenshtein==0.21.1 # 替换原0.12.0:性能提升,兼容Python3.10 pyjwt==2.8.0 # 替换原1.6.4:修复安全漏洞,支持旧JWT格式与Python3.10 # 其他工具 progressbar2==4.2.0 # 替换原3.38.0:API兼容,修复显示问题 querystring-parser==1.2.3 # 保持原版本:兼容Python3.10,无后续更新
额外注意事项
- 先备份原项目的
requirements.txt,再替换为上述版本 - 执行
pip install -r requirements.txt安装依赖,若遇到编译类错误(如mysqlclient、lxml),需先安装系统依赖(例如Ubuntu下安装libmysqlclient-dev、libxml2-dev、libxslt1-dev) - 若原项目使用的Django版本不兼容Python3.10,需同步调整Django版本:比如原Django2.x需升级到
Django==2.2.28(LTS版本,支持Python3.10),原Django3.x升级到Django==3.2.23 google_images_download已停止维护,长期建议替换为更活跃的替代库(如用requests配合Google Custom Search API)
内容的提问来源于stack exchange,提问作者Shreyas H
相关产品推荐
相关产品推荐

