virtualenv可以继承另一个吗?

Yan*_*ann 15 python virtualenv

我想创建一个virtualenv使用另一个作为起点,这可能吗?

我必须记住案例:

  1. 假设我有两个virtualenv用于生产,一个用于开发.开发环境需要与生产环境相同的包,但它需要在生产环境中不需要的其他包.我不想两次安装普通包.

  2. 我想尝试一个软件包的开发版本,matplotlib比如说.该软件包的开发版本与稳定版本具有相同的要求.所以我创建了一个virtualenv调用matplotib_stable并安装了需求和稳定版本.然后我创建了第二个virtualenv被调用matplotlib_devmatplotlib_stable用作起点(用于matplotlib需求),然后我安装了开发版本.

如何使用pip从本地缓存安装?似乎解决了下载软件包的问题,​​但我认为它不涉及修改sys.path.

Yan*_*ann 14

一种解决方案是使用virtualenvwrapper's add2virtualenv命令.这个

将指定的目录添加到当前活动的virtualenv的Python路径中.

所以如果我有两个virtualenv,ENV1并且ENV2,我想要ENV2访问包中ENV1,那么我需要:

  1. 激活ENV2:

    workon ENV2

  2. 使用以下命令添加ENV1的site-packages目录add2virtualenv:

    add2virtualenv $WORKON_HOME/ENV1/lib/python2.6/site-packages

以上假设$WORKON_HOME是virtualenv目录的位置,并且您正在使用python2.6,因此显然相应地调整它们.

虽然这提供了对包的访问,但它不会调整shell路径.换句话说,bin使用此方法无法访问安装到目录的脚本.