【发布时间】:2022-01-10 08:35:40
【问题描述】:
我编写了一个在githooks/post-merge 中使用的python 脚本,其目的是从存在于同一存储库中的env.yml 文件中安装或更新模块。我使用了以下代码:
for module in modules_to_update:
print("\n================================= Updating {} ==================================\n".format(module))
update_command = ['conda', 'install', '{}={}'.format(module.name, module.version)]
subprocess.run(update_command)
可以看出,modules_to_update 包含将要安装/更新的模块。我没有使用conda update,因为我不希望自动更新。
问题是:我预计 conda 会请求允许单独安装/更新每个模块,但它没有按计划工作。当我尝试这样做时,每个模块都做了同样的事情——无需等待我的输入即可继续:
Proceed ([y]/n)?
Preparing transaction: done
Verifying transaction: done
...
我没有使用 -y 标志,所以它不应该以这种方式工作,当我尝试单独使用 python 脚本时它工作得很好。
【问题讨论】:
-
您在没有输入附加到子进程的
stdin的情况下运行,所以它默认为[y]。
标签: python python-3.x conda githooks