如何使用默认的pip将python包安装到特定的virtualenv

时间:2013-07-03 05:00:51

标签: python virtualenv pip fabric

如何使用pip从virtualenv外部安装软件到特定的virtualenv。

例如,如果我有一个virtualenv / home / guest / virtualenv / django-env, 如何在不执行source / home / guest / virtualenv / django-env / bin / activate并使用默认pip的情况下将python包安装到/home/guest/virtualenv/django-env/lib/python2.7/site-packages/可在/ usr / local / bin / pip中找到

上下文是,我正在使用fabric进行远程软件安装,当我使用fabric时,我无法持久保存新创建的虚拟环境。 因此,为了能够将软件安装到新的virtualenv中,我必须从virtualenv外部运行默认的pip(/ usr / local / bin / pip)

2 个答案:

答案 0 :(得分:2)

您无需使用virtualenv来使用它。只需通过执行virtualenv:/home/guest/virtualenv/django-env/bin/pip install <package>

中安装的pip来安装软件包

你也可以在早期版本的pip中,在另一个virtualenv中运行pip,而不是使用pip -E安装的那个,如下所示:

pip -E /home/guest/virtualenv/django-env/

但是这确实没有上述优势,并且可能导致错误,所以第一种选择仍然更好。

答案 1 :(得分:1)

pip 1.1之前,有一个选项-E可以在没有切换的情况下在虚拟环境中安装软件包,就像你可以做的那样,

pip install -E /path/to/env <package>

但根据changelog,

  

删除-E / - 环境选项和PIP_RESPECT_VIRTUALENV;都使用了   restart-in-venv机制已经破裂,而且没有一个是有用的   因为每个virtualenv现在都在其中。替换pip -E   path / to / venv使用virtualenv路径安装Foo /至/ venv&amp;&amp;   path / to / venv / pip install Foo。

因此,如果您在1.1之前有点数,那么您很幸运能使用全球点数。