virtualenv可以继承另一个吗?

时间:2012-05-10 16:45:57

标签: python virtualenv

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

我必须牢记案例:

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

  2. 我想尝试一个软件包的开发版本,例如matplotlib。该软件包的开发版本与稳定版本具有相同的要求。所以我创建了一个名为virtualenv的{​​{1}}并安装了需求和稳定版本。然后我创建了第二个名为matplotib_stable的{​​{1}}并使用virtualenv作为起点(对于matplotlib_dev要求),然后我安装了开发版本。

  3. How do I install from a local cache with pip?似乎解决了下载软件包的问题,​​但我认为它不涉及修改matplotlib_stable

2 个答案:

答案 0 :(得分:14)

一种解决方案是使用virtualenvwrapper的{​​{3}}命令。这个

  

将指定的目录添加到Python的路径中   目前活跃的virtualenv。

因此,如果我有两个virtualenvENV1ENV2,并且我希望ENV2访问ENV1中的包,那么我需要:

  1. 激活ENV2

    workon ENV2

  2. 使用ENV1添加add2virtualenv的site-packages目录:

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

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

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

答案 1 :(得分:-1)

以下似乎对我有用。假设您要从名为<ng-component> <div class="card"> <div class="table 0"> <table class="table 1"> <thead class="fi-header"> <tr> <th>PG</th> <th>N/U</th> <th>RB</th> <th>PC</th> <th>PN</th> <th>CT</th> <th>T</th> <th>D</th> <th>S</th> <th>C</th> <th>Ca</th> <th>OG</th> <th>D</th> </tr> </thead> <tbody> <tr class="conf-0"> <td class="pg">Group 1</td> <td> <span class="is-n">New</span> </td> <td class="rb">123</td> <td class="pc">AB</td> <td class="pn">Alpha Bravo</td> <td class="ct">Type 1</td> <td class="t">6</td> <td class="d">15000</td> <td class="s">MR</td> <td class="c">Sedan</td> <td class="ca">Allstate</td> <td class="og">Grp. 1</td> <td> </td> </tr> <tr class="conf-1"> <td class="pg">Group 1</td> <td> <span class="is-n">Used</span> </td> <td class="rb">123</td> <td class="pc">WL</td> <td class="pn">Plan WL</td> <td class="ct">Type 2</td> <td class="t">6</td> <td class="d">15000</td> <td class="s">MR</td> <td class="c">SUV</td> <td class="ca">Allstate</td> <td class="og">Grp. 1</td> <td> <span class="dr-0"> <a class="dr" href="javascript:void(0)"> <span> <span class="dr-start-date">3/22/2017</span> - <span class="dr-end-date">3/22/2017</span> , </span> </a> </span> <span class="dr-1"> <a class="dr" href="javascript:void(0)"> <span> <span class="dr-start-date">3/22/2017</span> - <span class="dr-end-date">3/22/2017</span> , </span> </a> </span> <span class="dr-2"> <a class="dr" href="javascript:void(0)"> <span> <span class="dr-start-date">3/22/2017</span> - <span class="dr-end-date">3/22/2017</span> </span> </a> </span> </td> </tr> </tbody> </table> </div> </div> </ng-component> 的旧虚拟环境继承。由于您可以指定在创建新环境时使用哪个python版本,只需执行以下操作:

old