20

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

我必须牢记用例:

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

  2. 例如,我想试验一个包的开发版本matplotlib。软件包的开发版本与稳定版本的要求相同。所以我创建了一个virtualenv调用matplotib_stable和安装的要求和稳定版本。然后我创建了第二个virtualenv调用matplotlib_devmatplotlib_stable用作起点(针对matplotlib要求),然后我安装了开发版本。

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

4

1 回答 1

17

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

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

因此,如果我有两个virtualenv,ENV1ENV2, 并且我想ENV2访问 中的包ENV1,那么我需要:

  1. 激活ENV2

    workon ENV2

  2. 使用添加ENV1的站点包目录add2virtualenv

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

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

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

于 2012-05-10T17:30:37.760 回答