如何使用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)
答案 0 :(得分:2)
您无需使用virtualenv来使用它。只需通过执行virtualenv:/home/guest/virtualenv/django-env/bin/pip install <package>
你也可以在早期版本的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之前有点数,那么您很幸运能使用全球点数。