virtualenv可以从另一个继承吗?
我想创建一个virtualenv
以另一个为起点,这可能吗?
我必须记住用例:
-
假设我有两个
virtualenv
用于生产,一个用于开发。开发环境需要与生产环境相同的程序包,但需要生产环境中不需要的其他程序包。我不想两次安装通用软件包。 -
例如,我想尝试一个软件包的开发版本
matplotlib
。软件包的开发版本与稳定版本具有相同的要求。所以我创建了一个virtualenv
被称为matplotib_stable
并安装要求和稳定版本的文件。然后,我创建一个第二个virtualenv
调用matplotlib_dev
并matplotlib_stable
用作起点(用于matplotlib
需求),然后安装开发版本。
如何使用pip从本地缓存安装?似乎解决了下载软件包的问题,但是我不认为它涉及修改sys.path
。
-
一种解决方案是使用
virtualenvwrapper
的add2virtualenv
命令。这个将指定的目录添加到当前活动的virtualenv的Python路径。
所以,如果我有两个
virtualenv
,ENV1
并且ENV2
,我要ENV2
访问的包ENV1
,然后我需要:- 激活
ENV2
:
workon ENV2
- 使用以下命令添加
ENV1
site-packages目录add2virtualenv
:
add2virtualenv $WORKON_HOME/ENV1/lib/python2.6/site-packages
上面的假设
$WORKON_HOME
是您的virtualenv目录的位置,并且您正在使用python2.6,因此显然要相应地进行调整。尽管这提供了对软件包的访问,但它不会调整外壳程序路径。换句话说,
bin
无法使用此方法访问安装到目录的脚本。 - 激活