在 anaconda "conda list" 的环境中多次列出包

Packages listed multiple times for an environment in anaconda's "conda list"

当我在 conda 环境中列出包时,我得到例如结果如下:

$ conda list
# packages in environment at /Users/tkb/anaconda3/envs/xxx:
#
_nb_ext_conf              0.4.0                    py35_1  
anaconda-client           1.6.3                    py35_0  
appnope                   0.1.0                    py35_0  
backports.weakref         1.0rc1                    <pip>
bleach                    1.5.0                     <pip>
bleach                    1.5.0                    py35_0  
clyent                    1.2.2                    py35_0  
decorator                 4.0.11                   py35_0  
entrypoints               0.2.3                    py35_0  
html5lib                  0.999                    py35_0  
html5lib                  0.9999999                 <pip>
ipykernel                 4.6.1                    py35_0 
....

一些包以不同的版本多次出现,并且在第三列中有所不同。这有什么作用,第三列是什么意思?

第三列告诉您软件包是如何安装的。如果有pyXX_Y,是conda安装的,XX表示Python主次版本(即35是Python3.5),以及包的内部版本号,这是一个内部编号,当包中的软件版本相同时,conda 用来帮助判断哪个版本的包更新。如果第三列显示 <pip>,则该软件包是通过 pip 安装的。有时,conda 安装包时会有第四列;此列表示安装软件包的渠道(由 installcreate 命令中的 -c--channel 指定)。

至于这个有什么作用,估计要看package了。通常,建议尽可能使用 conda 将包安装到 conda 环境中,因为 conda 无法管理(卸载、升级等)通过 pip 安装的包。