我正在寻找一种方法,使virtualenv将包含一些库(我选择)的基本python安装。

更具体地说,我试图在创建virtualenv期间将matplotlib导入到virtualenv。使用pip或easy_install不能有效地安装它,因为它遗漏了一些fortran编译器库。到目前为止,我的方法是手动复制:

/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/

然而,这阻止了人工导入的链接被蛋黄注册(它在virtualenv中打印所有当前可用的库)。

那么,有没有办法做一个选择性的变种

virtualenv --system-site-packages

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


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


安装虚拟环境

virtualenv --system-site-packages

然后使用pip install -U安装matplotlib


我在Ubuntu 20.04上使用python.3.8和pip3已经晚了。

摆脱烦人的.local安装的唯一方法是设置一个环境变量(bash):

export PYTHONNOUSERSITE="true"

这并不需要是“真实的”,任何事情都会奏效。我不会选0。: -)