首页 > 解决方案 > 有没有办法在所有 python 环境中安装包

问题描述

我已经创建了几个 python 的 conda 环境。但有时,我会遇到一些实用程序包,它们对我系统上的所有环境都有帮助。有没有办法做到这一点,而无需在所有环境之间来回切换并单独安装它们。

谢谢

标签: pipanacondaconda

解决方案


base (root)在这种情况下,您可以在环境中安装该软件包。在该默认环境中与命令行实用程序 (example git) 和图形用户界面 (example spyder) 相关的所有软件包在您的所有 conda 环境中都是可见的。

更新

你可以使用我的脚本。取消注释最后 3 行并更改包列表。您可以使用手动环境列表或在所有环境中使用自动。

import subprocess as sub

def conda_env_list():
    p = sub.Popen("conda env list", shell=True, stdout=sub.PIPE, encoding="utf-8")
    p.wait()
    out = p.communicate()[0].splitlines()
    envs = [out[line].split()[0] for line in range(2, len(out)-1)]
    return envs

def conda_env_install(envs, packages, channel="default"):
    TEMPLATE = "conda install {confirm} -c {channel} -n {env} {packages} "
    if isinstance(envs, str):
        envs = [envs]
    if isinstance(packages, list):
        packages = " ".join(packages)
    confirm = "-y"
    for env in envs:
        cmd = TEMPLATE.format(confirm=confirm, packages=packages, \
            channel=channel, env=env)
        p = sub.Popen(cmd, shell=True, stdout=sub.PIPE, encoding="utf-8")
        p.wait()
        print(p.communicate()[0])

envs = conda_env_list()
packages = ["git"]
conda_env_install(envs, packages)

推荐阅读