Python 如何在项目中使用多个conda环境

Python 如何在项目中使用多个conda环境,python,jupyter,conda,environment,Python,Jupyter,Conda,Environment,我正在从事一个研究项目,在这个项目中,我需要使用一些科学软件包,每个软件包都附带有特定的需求文件,包括所需的库。我正在使用Windows 10中的Anaconda在jupyter笔记本中编写python 根据我在网上读到的内容,每个项目都需要有自己的环境,所以我使用conda创建了一个环境(比如project_env)。在我的项目中,在某些部分,我需要使用一些外部科学软件包(我们称之为“bst”和“MDN”),它们都是从Github克隆而来的,每个软件包都有其特定的依赖项 我目前的做法是在同一个

我正在从事一个研究项目,在这个项目中,我需要使用一些科学软件包,每个软件包都附带有特定的需求文件,包括所需的库。我正在使用Windows 10中的Anaconda在jupyter笔记本中编写python

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

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


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

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

正如这里提到的(),只需在conda terminal中键入:“conda install nb_conda_kernels”,即可在您想要运行其他环境(内核)的环境(内核)中安装此包。在我的例子中(上面的问题),它是“project_env”。此外,请确保在笔记本中要使用的外部环境中安装了“ipykernel”(在我的例子中是:“bst_env”和“MDN_env”)

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

即使使用conda安装,在安装的软件包之间也存在一些冲突,我们可能能够帮助解决这一部分。