在终端中输入 'conda list' 时会列出什么?

What is being listed when typing 'conda list' into terminal?

根据文档,conda list returns "list of packages and versions installed in active environment" 但是当我 运行 这个时,我得到了我认为是包的东西,比如 'cairo',还有 'python'(版本 3.7.3)本身,它是一种语言,'spyder' 和 'jupyter',是交互式环境。

(有趣的是,这里没有列出python2,而是在conda env列表中。我能想到的唯一原因是我使用的Anaconda版本(3)自带python 2, python 3 已经安装在上面了。)

我正在努力了解这些项目中的每一项是什么,以及在使用不同环境时如何访问它们。我可用的环境是(base、omnipath、pypath、python2、rstudio)。我在 omnipath 中工作,然后 运行 一个我 'import pypath' 的脚本似乎工作正常(然而这两个都是环境!?在我看来,它们在 'the same level',这就是为什么我对将一个与另一个进行比较的想法感到不舒服的原因)。

在我的脚本中,我还需要调用 ipython,它在基本环境中时会列在 conda 列表中,但在 omnipath 或 pypath 中则不会。这似乎是一个问题,因为我收到错误 'no module named IPython' 因为它不在 'conda list' 在此环境中。

由于我的脚本似乎能够在 omnipath 环境中导入 pypath,我认为也许我可以工作 'from the base' 并根据需要也导入 omnipath,然后 IPython 就可以正常工作.除了我得到一个错误 'no module named omnipath'.

我希望这说明了我的困惑:pypath 没有被列为模块,也没有出现在 'conda list' 中,而是被列为环境。这些事实与 omnipath 完全相同。

然而我能够 'import pypath' 和 'import ipython' 甚至 'import IPython' (仍然不确定为什么它们不同)而不会从基础和 omnipath 环境中出错,但是不是来自 pypath。

我怀疑对我的查询最合适的回答是 link 以了解这些不同的编程对象如何组合在一起,

Python是编程语言,没错。但是 python 也是包含 Python 解释器的 conda 包的名称。 spyder 是一个 IDE,它作为 conda 包提供。 jupyter 是一个 conda meta-package:它没有自己的内容,但它声明了对其他实现 Jupyter 笔记本的包的所有依赖关系。

conda listconda env export 打印 one conda 环境中的软件包列表。您可以使用 -n <envname> 来告诉您要为哪个环境列出包。每个环境都可以有不同版本的 Python 解释器。

当您编写依赖于某些包的脚本时,您应该为该脚本创建一个新的 Anaconda 环境。然后将脚本需要的所有包安装到 that 环境中。不要尝试从不同的环境中导入东西。每个环境都代表自己。创建环境的重点是保持不同程序的包依赖性分开。