pip - 有没有办法在所有 python 环境中安装包
问题描述
我已经创建了几个 python 的 conda 环境。但有时,我会遇到一些实用程序包,它们对我系统上的所有环境都有帮助。有没有办法做到这一点,而无需在所有环境之间来回切换并单独安装它们。
谢谢
解决方案
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)
推荐阅读
- java - springboot:将对象数组写入数据库
- sql - 在具有不同列的oracle中枢轴
- twig - 在 TWIG 中包含标签不起作用,运行为空白
- python - 如何在 Airflow 的 DAG 中运行具有另一个虚拟环境依赖项的 python 脚本?
- reactjs - 如何从反应js中的函数返回数组
- java - 防止手机静音
- r - 在 2 列数据框中,如何将第二列数字格式化为 2 位小数
- linux - 增加 WPEA-121N Wifi 卡中的 tx 功率
- objectify - 对象化:有没有办法知道实体是从对象化会话加载还是直接从数据存储加载?
- python-2.7 - pip 安装了非指定的 generator_tools 包并触发了 `AssertionError: Python version 2.5 or 2.6 required` 错误