virtualenv可以从另一个继承吗?

发布于 2021-01-29 15:06:27

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

我必须记住用例:

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

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

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

关注者
0
被浏览
95
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    一种解决方案是使用virtualenvwrapperadd2virtualenv命令。这个

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

    所以,如果我有两个virtualenvENV1并且ENV2,我要ENV2访问的包ENV1,然后我需要:

    1. 激活ENV2

    workon ENV2

    1. 使用以下命令添加ENV1site-packages目录add2virtualenv

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

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

    尽管这提供了对软件包的访问,但它不会调整外壳程序路径。换句话说,bin无法使用此方法访问安装到目录的脚本。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看