使用--target

时间:2015-07-03 15:27:46

标签: python python-2.7 pip virtualenv

我想用这个管理依赖模块的小型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显示安装在文件夹中的软件包的标准方法是什么?我能想到的唯一方法就是做ls pip-libs然后玩grep,awk ......看起来不对。

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

Python 2.7.9。

4 个答案:

答案 0 :(得分:3)

不幸的是,你无法用pip freeze做到这一点。文档说pip install安装到该目标文件夹中,但它仍在您的路径中。因此pip freeze仅显示安装的软件包,而不是特定位置安装的软件包。

您可以查看pip show,其中包含安装的信息(请参阅https://pip.pypa.io/en/stable/reference/pip_show/),但您必须编写一些sed / awk或类似内容“位置”行上的一个grep,然后返回并获取包名称。

另一种选择是只查看安装文件夹中的文件夹,然后手动计算出包含的内容......如下所示:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

pip freeze --path [path location]

对于当前文件夹:

pip freeze --path .

答案 3 :(得分:0)

这应该有效

PYTHONPATH=./pip-libs pip freeze