自动生成Python程序依赖包

问题

项目历史遗留问题,最开始的时候依赖包都还记录的比较完善,但是经手好几个团队后,逐渐变得不可控了。于是想要好好整理下项目依赖包问题。

解决

首先想到的是一个一个程序运行来尝试,但项目太多,依赖包也太多,明显是不可行的。

后来Google发现有个工具很好pip_check_reqs(项目地址https://pypi.org/project/pip_missing_reqs/),可以自动分析项目文件输出依赖包信息。

Python2注意事项:

  • 使用pip_check_reqs==2.0.4 高版本不支持python2
  • 如果报错ModuleNotFoundError: No module named 'pip.commands',检查是不是pip版本不对,过高的pip版本不支持,可以使用10.0.1版本

可使用下面命令自动生成requirements.txt文件:

pip-missing-reqs . 2>&1 | awk '{print $2}' | grep dist | awk -F= '{print $2}' | sort -u >> requirements.txt
git checkout -b eng/fix_req
git add requirements.txt
git commit -m "feat(req): 修复requirements依赖配置"
git push --set-upstream origin eng/fix_req