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

2024-07-03 07:20:34 发布

您现在位置:Python中文网/ 问答频道 /正文

根据文件显示,康达的名单回来了 “活动环境中安装的包和版本列表” 但是当我运行这个程序时,我会得到一些我认为是包的东西,比如“cairo”,还有“python”(3.7.3版)本身,它是一种语言,“spyder”和“jupyter”,它们是交互环境

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

我试着弄清楚每一项是什么,以及在使用不同的环境时如何访问它。我提供的环境有(base、omnipath、pypath、python2、rstudio)。我在omnipath中工作,然后运行一个脚本来“导入pypath”(但这两个都是环境!?在我看来,他们是在'同一水平',这就是为什么我不适合与校准一个从另一个的想法)

在我的脚本中,我还需要调用ipython,它在基本环境中时列在conda list中,但在omnipath或pypath中时不列在conda list中。这似乎是一个问题,因为我获得了一个错误“no module named IPython”,因为在这个环境中它不在“conda list”中

由于我的脚本似乎能够在omnipath环境中导入pypath,所以我认为也许我可以“从基础”工作,并根据需要导入omnipath,然后IPython就可以正常工作了。但我得到一个错误“没有名为omnipath的模块”

我希望这一幻觉引发了我的困惑:pypath没有作为模块列出,也没有出现在“conda list”中,而是作为环境列出的。这些事实与omnipath完全相同

然而,我能够从基本环境和omnipath环境中“import pypath”和“import ipython”甚至“import ipython”(仍然不确定它们为什么不同),而不是从pypath中

我怀疑对我的查询最恰当的回应是理解这些不同的编程对象是如何组合在一起的


Tags: 模块文件import版本脚本列表环境错误
1条回答
网友
1楼 · 发布于 2024-07-03 07:20:34

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

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

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

相关问题 更多 >