首页 > 解决方案 > 在 Python 中以编程方式获取 conda 包列表

问题描述

有没有办法在 Python 中以编程方式获取所有 conda 包?

基本上,我想找到相当于运行的 Python

conda list

当然,我可以打开一个 os 子进程并调用conda list,但我希望有比这更好的解决方案。

标签: pythonanacondacondaminiconda

解决方案


需要conda在环境中安装 Python 包,这通常只适用于基础环境。然后可以使用内部调用的相同代码conda list,即list_packages从模块调用conda.cli.main_list。例如,以下将等价于conda list -n foo

import conda.gateways.logging
from conda.cli.main_list import list_packages
from conda.common.compat import text_type

prefix = "/path/to/miniconda3/envs/foo"

exitcode, output = list_packages(prefix)
print('\n'.join(map(text_type, output)))

请注意,此代码很容易中断,因为它使用的是内部结构。

签名

>>> help(list_packages)

# Help on function list_packages in module conda.cli.main_list:
list_packages(prefix, regex=None, format='human', show_channel_urls=None)

推荐阅读