【问题标题】:How to use more than one conda environment in a project如何在一个项目中使用多个 conda 环境
【发布时间】:2021-02-21 18:44:54
【问题描述】:

我正在做一个研究项目,我需要使用一些科学软件包,每个软件包都附带其特定的需求文件,包括所需的库。我正在使用 Windows 10 中的 Anaconda 在 jupyter notebook 中编码 python。

根据我在网上阅读的内容,每个项目都需要有自己的环境,所以我使用 conda 创建了一个环境(比如 project_env)。在我的项目中,在某些地方,我需要使用一些从 Github 克隆的外部科学包(我们称之为“bst”和“MDN”),每个包都有其特定的依赖项。

我目前的做法是将所有这些依赖项安装在同一个环境 (project_env) 中,并将整个项目编码在一个笔记本中。然而,随着未来的发展,事情变得越来越复杂,即使使用 conda 安装,安装的包之间也会面临一些冲突。所以,我想出了这个想法,尽可能地让事情分开,即为外部包(bst_env 和 MDN_env)创建另外两个环境,然后在项目中需要它们时使用它们。在这种情况下,我无法将所有项目代码包含在一个 jupyter 笔记本中,因为据我所知,无法从笔记本内部切换环境。然而,以这种方式,为项目的不同部分运行不同的笔记本是相当困难和混乱的。

我的问题是:有没有一种方法可以从笔记本运行多个环境?如果不是,在项目中处理这些环境的最佳实践是什么?我应该每次都将我的变量从我的源代码(在 project_env 中运行)导出到其他环境(bst_env 或 MDN_env),并每次都激活并运行它们相应的环境和笔记本,还是有更好的做法来做到这一点?

【问题讨论】:

  • 即使使用 conda 安装也面临安装包之间的一些冲突我们也许可以帮助解决这部分问题。

标签: python jupyter conda environment


【解决方案1】:

我找到了这个很棒的包 (nb_conda_kernels),这正是我想要的。它使您能够在 jupyter notebook 中的环境(内核)之间切换,只需从可用环境列表中进行选择。

正如这里提到的 (https://github.com/Anaconda-Platform/nb_conda_kernels),只需在 conda 终端中键入:'conda install nb_conda_kernels' 即可在您要运行其他环境(内核)的环境(内核)中安装此软件包。就我而言(上述问题),它是“project_env”。另外,请确保在要在笔记本中使用的外部环境中安装了“ipykernel”(在我的情况下:“bst_env”和“MDN_env”)。

现在,在环境“A”下的笔记本中工作期间,您可以使用安装在环境“B”或“C”中的依赖项,只需从 jupyter notebook 的内核列表中选择这些环境即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-17
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多