【问题标题】:Using stacked conda environments使用堆叠的 conda 环境
【发布时间】:2017-11-03 09:33:35
【问题描述】:

我想同时使用多个 conda 环境。我有一个巨大的 conda 环境,其中包含许多我在所有项目中使用并且不想再次创建的包(我们称之为单体)。我想为每个项目创建一个单独的较小的 conda 环境,并将它与我的巨大单体一起使用。这样我就可以保持整体清洁并安全地用于多个项目。以下是我认为应该注意的几件事,

  1. 更新 PATH、PYTHONPATH 和 LD_LIBRARY_PATH 变量。
  2. 安装新包时,在堆栈中的所有环境中试运行试运行,然后才将其安装到顶层环境。这样可以捕获任何版本冲突。
  3. 在执行试运行时,请跟踪 conda 列出的所有安装包。并且当在顶层环境中运行最终安装时,只安装每个干运行中列出的带有 --no-deps 标志的包的交集。这样我们就可以避免重新安装软件包。

这种方法行得通吗?

【问题讨论】:

    标签: python anaconda virtualenv


    【解决方案1】:

    所以问题可以通过两种方式解决:

    • 更清洁的方式

    • 聪明的方法

    更清洁的方式

    您拥有想要在每个项目中使用的虚拟环境monolith。对于每个项目,复制带有项目名称的虚拟环境 monolith 并将其用作虚拟环境。

    这种方式的好处是我们将有一个干净且独立的虚拟环境可供使用。这种方式的成本将是相同数据占用的大空间,因为您在每个项目中都在复制单体

    聪明的方法

    创建单体虚拟环境的副本(仅出于安全考虑)。 使包含虚拟环境包的文件夹成为本地 git 存储库。 下面的命令会很有用。

    • git init

    • git add .

    • git commit -m"Master Project"

    现在为每个新项目使用git checkout -b PROJECT_NAME

    创建一个新分支

    别忘了切换到你要使用的分支。在安装任何软件包时最重要。

    P.S : Clever 可能会也可能不会根据您的系统工作,我建议使用更清洁的方式。由于项目域不会超过 6 个或 7 个。(即一个用于 ML,另一个用于 CV....)

    另外,请评论哪个对你有用。

    【讨论】:

    • 非常感谢,这是一个非常了不起的解决方案。之前我使用的是更清洁的解决方案,但 conda clone 最多需要 15 分钟才能执行。
    • 我提到了 git clone (不知道它是否最适合管理不同的项目),但是是的.. Conda clone 也是一种选择,使用 anaconda navigator 您可以轻松管理环境
    猜你喜欢
    • 2018-04-26
    • 2018-09-15
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多