使用pipreqs保存第三方依赖

如果使用pip freeze > requirements.txt的话我个人理解会把pip list可以看到的所有包全都写进文件中,哪怕代码中没有用到这些包也会写入到依赖文件中。

如果我们只想像npm那样保存个依赖时用pipenv这种重量级工具又有点大材小用了,所以pipreqs这个工具就很适合解决这个问题。

除了网上说的要加--encoding=utf8之外,我自己在使用的时候遇到一个向一个无法连接的网络尝试了一个套接字操作这么个错误,在查询了文档之后写成下列的形式就可以了:

pipreqs --encoding=utf8 --use-local

默认情况下,pipreqs会在命令行所在文件夹下生成requirements.txt,而如果网不好的话可能访问不了pypi.org,所以加上--use-local指定只查询本地的包而不用访问pypi。

但要注意,如果有些包在pypi上注册的包名不是引入到代码中的包名时依赖解析会出错。比如,一个包下载时是pip install a,但是在代码里引用却是import b,这时pipreqs会把b当作这个包名去保存下来,不知道这个跟我用本地包有没有关系。

posted @ 2022-03-28 16:31  学学代码记记笔记  阅读(194)  评论(0编辑  收藏  举报