【问题标题】:Get list of conda packages programmatically in Python在 Python 中以编程方式获取 conda 包列表
【发布时间】:2021-04-23 14:09:11
【问题描述】:

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

基本上,我想找到运行的 Python 等价物

conda list

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

【问题讨论】:

  • 目前没有,抱歉。您需要按照说明使用os.system('conda list')。看起来有点hackish,但它会工作:(

标签: python anaconda conda miniconda


【解决方案1】:

需要在环境中安装conda Python 包,这通常只适用于base 环境。然后可以使用conda list 在内部调用的相同代码,即来自模块conda.cli.main_listlist_packages。例如,以下内容等同于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)

【讨论】:

    【解决方案2】:

    尝试使用 -

    help('modules')
    

    处于交互模式。 (它适用于 cpython。)

    【讨论】:

    • 这不是只捕获 Python 包吗? Conda 环境通常包含的不仅仅是 Python,例如,编译的依赖项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多