Anaconda 康达:列出使用特定软件包的所有环境

Anaconda 康达:列出使用特定软件包的所有环境,anaconda,conda,miniconda,Anaconda,Conda,Miniconda,如何获得在conda中使用某个包的所有环境的列表?下面是一个如何使用conda Python包的示例(在base环境中运行此程序): 导入conda.gateways.logging 从conda.core.envs\u管理器导入列表\u所有已知\u前缀 从conda.cli.main\u列表导入列表\u包 从conda.common.compat导入文本类型 #要搜索的包;这可以是正则表达式 PKG_REGEX=“pymc3” 对于列表中的前缀\u所有已知的\u前缀(): exitcode,o

如何获得在conda中使用某个包的所有环境的列表?

下面是一个如何使用conda Python包的示例(在base环境中运行此程序):

导入conda.gateways.logging
从conda.core.envs\u管理器导入列表\u所有已知\u前缀
从conda.cli.main\u列表导入列表\u包
从conda.common.compat导入文本类型
#要搜索的包;这可以是正则表达式
PKG_REGEX=“pymc3”
对于列表中的前缀\u所有已知的\u前缀():
exitcode,output=list\u包(前缀,PKG\u REGEX)
#仅打印包含结果的环境
如果exitcode==0且len(输出)>3:
打印('\n'.join(映射(文本类型,输出)))
从Conda v4.10.0开始,它就可以工作,但由于它依赖于内部方法,因此无法保证继续工作。也许这应该是一个功能请求,比如对于像
conda list--any
这样的CLI命令


脚本版本 以下是使用包名称参数的版本:

conda list any.py

#/usr/bin/env conda run-n base--无捕获输出python
##用法:conda-list-any.py[包…]
##示例:conda-list-any.py numpy熊猫
导入conda.gateways.logging
从conda.core.envs\u管理器导入列表\u所有已知\u前缀
从conda.cli.main\u列表导入列表\u包
从conda.common.compat导入文本类型
导入系统
对于sys.argv[1:]中的pkg:
打印(“#”*80)
打印(#正在检查包“%s”…%pkg)
n=0
对于列表中的前缀\u所有已知的\u前缀():
exitcode,output=list\u包(前缀,pkg)
如果exitcode==0且len(输出)>3:
n+=1
打印(“\n”+“\n”.join(映射(文本类型,输出)))
打印(“\n#找到了%d个环境%s和“%s”。”%(n,“如果n==1,则为“s”,pkg))
打印(“#”*80+”\n)

顶部的shebang应确保它将在base中运行,至少在Unix/Linux系统上运行。

请注意,您也可以执行
conda list-n
,而不是首先激活环境。谢谢,这不是一个完整的解决方案,但它方便且易于记忆。因为没有conda命令,这是我见过的最好的解决办法。我刚刚添加了包名作为命令行参数,效果非常好。