如何使用pip从virtualenv外部安装软件到特定的virtualenv。
例如,如果我有一个virtualenv /home/guest/virtualenv/django-env,那么如何在不执行源代码/home/guest/virtualenv/django-env/bin/activate的情况下通过使用/usr/local/bin/pip中提供的缺省pip将python包安装到/home/guest/virtualenv/django-env/lib/python2.7/site-packages/中
上下文是这样的:我正在使用fabric进行软件的远程安装,而当我使用fabric时,我无法持久化新创建的虚拟环境。因此,为了能够将软件安装到新的虚拟环境中,我必须从虚拟环境之外运行默认的pip (/usr/local/bin/pip
发布于 2013-07-03 13:08:47
要使用它,您不一定要使用虚拟环境。只需执行安装在virtualenv:/home/guest/virtualenv/django-env/bin/pip install <package>
中的pip即可安装软件包。
您也可以在早期版本的pip中,在与pip -E
一起安装的虚拟环境之外的另一个虚拟环境中运行pip,如下所示:
pip -E /home/guest/virtualenv/django-env/
但这确实没有以上两种方法的优势,而且可能会导致错误,因此第一种选择仍然更好。
发布于 2013-07-03 13:44:37
在pip 1.1之前,有一个选项-E可以在虚拟环境中安装软件包,而不需要切换,就像你可以做的那样,
pip install -E /path/to/env <package>
但根据changelog,
删除了-E/--环境选项和PIP_RESPECT_VIRTUALENV;这两个选项都使用了失效的venv重启机制,而且这两个机制都没有用,因为每个virtualenv现在都有pip。将pip -E路径/to/venv install Foo替换为virtualenv path/to/venv && path/to/venv/pip install Foo。
因此,如果您在1.1之前使用pip,那么使用全局pip就很幸运了。
https://stackoverflow.com/questions/17440002
复制相似问题