与targ一起安装的软件包的Pip冻结

2024-04-27 01:04:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个小型Python项目中使用这种方法来管理依赖模块: http://blog.zoomeranalytics.com/pip-install-t/

简而言之,我要做的是:

cd myproject

pip install --target ./pip-libs --upgrade -r requirements.txt

然后将./pip-libs添加到PYTHONPATH并运行我的脚本。在

这看起来,但我喜欢使用pip冻结,它不允许我做任何类似的事情

pip freeze --target pip-libs

查看文件夹中安装的包。当然,我可以看看里面,但是什么是标准的方法来显示安装在带有--target的文件夹中的包?我能想到的唯一方法就是做pip libs的ls,然后玩grep,awk。。。似乎不对。在

我不确定是否有办法,也许这不是个好主意,或者我应该为pip请求这样的功能。在

Python 2.7.9。在


Tags: 模块installpip项目方法文件夹comhttp
3条回答

不幸的是,你不能用pip freeze来做这件事。文档说pip install安装到目标文件夹中,但它仍然在您的路径中。因此pip freeze只显示安装了哪些包,而不是在特定位置安装了什么。在

您可以查看pip show,它确实包含有关它们的安装位置的信息(请参见https://pip.pypa.io/en/stable/reference/pip_show/),但您必须编写一些sed/awk或类似的代码,以便在“Location”行上执行grep,然后返回并获取包名。在

另一种选择是只查看安装文件夹中的文件夹,然后手动计算出哪些包从中。。。比如:

ls ./pip-libs | grep -v .dist-info

这应该行得通

PYTHONPATH=./pip-libs pip freeze

聚会有点晚了,但我遇到了同样的问题,这似乎解决了问题。在

pip freeze  path ./pip-libs > requirements.txt

相关问题 更多 >