使virtualenv从您的全局站点包继承特定的包

时间:2012-08-22 18:54:52

标签: python virtualenv

我正在寻找一种方法来制作一个virtualenv,其中只包含基本python安装的一些库(我选择)。

更具体一点,我在创建virtualenv期间尝试将matplotlib导入virtualenv。它无法通过pip或easy_install高效安装,因为它错过了一些fortran编译器库。我到目前为止的方式是从

手动复制
/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/

然而,这可以防止yolk注册manully导入的链接(打印virtualenv中所有当前可用的lib)。

那么,有没有办法做一个

的选择性变体
virtualenv --system-site-packages

4 个答案:

答案 0 :(得分:203)

使用virtualenv --system-site-packages创建环境。然后,激活virtualenv,当你想在virtualenv而不是系统python中安装东西时,使用pip install --ignore-installedpip install -I。这样,即使存在系统范围的版本,pip也会安装您在本地请求的内容。你的python解释器将首先在virtualenv的包目录中查找,因此这些包应该会影响全局的包。

答案 1 :(得分:16)

您可以使用--system-site-packages然后“重新安装”您的virtualenv的特定内容。这样,您安装到virtualenv中的所有内容都将从那里获取,否则将从您的系统中获取。

答案 2 :(得分:-5)

使用

安装虚拟环境
virtualenv --system-site-packages

并使用pip install -U to install matplotlib

答案 3 :(得分:-7)

您可以使用virtualenv --clear。它不会安装任何软件包,然后安装你想要的软件包。