如何以非交互模式运行 pip?

如何以非交互模式运行 pip?

我使用的大多数工具都有某种模式(通常默认为开启),在运行命令时它们不会问我任何问题。apt-get 是一个类似于 pip 的例子。它有一个 -y 选项,这使得它成为非交互式的。pip 有这样的选项吗?如果没有这样的选项,如何将它包装到某个脚本中以实现我想要的效果。例如,我想运行类似这样的命令:

pipyes install mypackage

目前我正在这样做,但想将其包装到脚本中:

yes | pip install mypackage

这是实现 pip 非交互模式的“正确”方法吗?

答案1

有一个--yes 选项专门用于卸载命令。调用

pip uninstall --yes <some-package>

卸载该包而不要求确认。

对于安装,使用 yes 命令进行管道连接似乎仍是可行的方法

另一种方法可能有点过头了,具体取决于你的用例,那就是使用专用工具。如果你在定期进行自动安装和配置时遇到困难,那么这绝对是最佳选择。例如:SaltStacks国体大量与 pip 进行自动化交互的方法。这不仅可用于协调服务器群,还可以通过运行在本地使用盐呼直接运行即可。参见运行salt的介绍无主

答案2

使用最新版本的 setuptools(pip 版本 >= 20.2),您可以使用:

pip install --no-input ...

…这将禁止提示用户输入私人 repo 凭证。

答案3

我远非 python/pip 专家,但我已经将它用于各种用途好几年了,还没有遇到过直接使用 pip install 的交互式方法。它确实为不太直接的情况提供了广泛的选项(备用包索引、缓存、开发模式等)。如果你有一个需要交互的特定安装案例,我猜你可以通过提供正确的专业选项组合来实现自动化,这些选项有文档记录这里

卸载是我更习惯需要交互的情况(包括明确确认删除模块),它实际上支持标准--yes 标志您在问题中提到的。

相关内容