pip freeze是魔鬼

很多用Python的项目,喜欢用 pip freeze > requirements.txt 来保存依赖,而不是手动维护文件,pip freeze 是魔鬼。

来看看一个项目依赖的简化版:

        A           B
    /      \     /      \
C             D             E

可以看到,依赖中可能会出现共同依赖。为啥说 pip freeze 是魔鬼呢?

  • 可能会列入无关紧要的,或者非项目所需的依赖
  • 把次级依赖的版本也写死了,当后来需要升级顶级依赖的时候,很难分辨需要升级哪些,因此不可维护

那么我建议的写法是什么样的呢?仅写入顶级依赖,比如:

flask==1.1.1
PyMySQL==0.9.3
SQLAlchemy==1.3.13
alembic==1.4.0
gevent==1.4.0
gunicorn==20.0.4
redis==3.4.1

这样虽然时间久了,次级依赖可能也会冲突,但是解决起来比上面说的要简单很多。


微信公众号
关注公众号,获得及时更新

更多文章
  • 为什么要使用gRPC?
  • Matebook X Pro 2019安装Debian 10
  • ArchLinux忽略某个包的升级
  • SQLAlchemy使用主从与数据库autocommit
  • Blackbox禁用IPv6
  • 预防缓存击穿
  • Go 1.13的errors挺香
  • flutter开发体验汇报
  • 自己封装一个好用的Dart HTTP库
  • Flutter应用启动后检查更新
  • Grafana Gravatar头像显示bug修复
  • flutter中使用RESTful接口
  • Vim YouCompleteMe使用LSP(以dart为例)
  • flutter webview加载时显示进度
  • SQLAlchemy快速更新或插入对象