在终端中输入“ conda list”时列出了什么?

时间:2019-06-19 13:19:31

标签: python module anaconda conda environment

根据文档,conda列表返回 “活动环境中安装的软件包和版本列表” 但是当我运行它时,我得到了一些我认为是软件包的东西,例如“ cairo”,还有“ python”(3.7.3版)本身(它是一种语言)以及“ spyder”和“ jupyter”(它们是交互式环境)

(有趣的是,python2未在此处列出,但在conda env列表中。我能想到的唯一原因是我正在使用的Anaconda版本(3)随附于python 2,而python 3已被安装在此之上。)

我正在努力弄清这些项目的含义,以及在使用不同环境时如何使用它们。我可以使用的环境是(基础,全向,pypath,python2,rstudio)。我在全路径下工作,然后运行一个脚本,在该脚本中我“导入pypath”(但是这两个都是环境!!在我看来,它们处于“同一级别”),这似乎很好用。这就是为什么我不赞成彼此调校的想法。

在我的脚本中,我还需要调用ipython,它在基本环境中在conda列表中列出,而在omnipath或pypath中则没有。这似乎是个问题,因为在这种环境下,我收到一条错误消息“没有名为IPython的模块”,因为它不在“ conda列表”中。

由于我的脚本似乎可以在全路径环境中导入pypath,因此我认为也许我可以“从基础”工作并根据需要导入全路径,然后IPython可以正常工作。除非出现错误“没有名为omnipath的模块”。

我希望这能说明我的困惑:pypath不会被列为模块,也不会出现在“ conda list”中,而是被列为环境。这些事实与全能者完全相同。

但是我仍然能够从基础和全路径环境(而不是从pypath)无错误地“导入pypath”和“导入ipython”,甚至是“导入IPython”(仍不确定为什么它们不同)。 / p>

我怀疑对我的查询最合适的响应是了解这些不同编程对象如何组合在一起的链接,

1 个答案:

答案 0 :(得分:1)

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

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

编写依赖某些程序包的脚本时,应为该脚本创建一个新的Anaconda环境。然后将脚本需要的所有软件包安装到那个环境中。不要尝试从不同的环境导入内容。每个环境都代表自己。创建环境的全部目的是使不同程序的程序包依赖关系保持独立。