web-dev-qa-db-ja.com

非対話モードでpipを実行するにはどうすればよいですか?

私が使用しているほとんどのツールには、コマンドの実行中にゼロの質問をするモード(多くの場合、デフォルトでON)があります。 apt-getは、pipに近い例です。非インタラクティブにする-yオプションがあります。ピップのためのそのようなオプションはありますか?そのようなオプションがない場合、それをいくつかのスクリプトにラップして、私が望むものを達成する方法があります。たとえば、私は次のようなものを実行したいと思います:

pipyes install mypackage

現在私はこれをやっていますが、それをスクリプトにラップしたいと思います:

yes | pip install mypackage

PIP非インタラクティブモードを実現するのは「正しい」方法ですか。

14
vladimir

アンインストールコマンド専用の -yesオプション があります。呼び出す

pip uninstall --yes <some-package>

確認を求めずにパッケージをアンインストールします。

インストールするために、yesコマンドでパイプをかける まだ進むべき道のようです

ユースケースによってはやり過ぎになる可能性のある別のアプローチは、専用ツールを使用することです。定期的な自動インストールと自動設定に苦労している場合、これは間違いなく進むべき道です。例として、SaltStacks state system には pipとの相互作用を自動化するための多くの方法 があります。これは、サーバーファームのオーケストレーションだけでなく、ローカルで salt-call を直接実行して使用することもできます。 saltの実行についての概要 masterless を参照してください。

19

ドキュメント化されていなくても、最近のバージョンのsetuptoolsでは、

pip install --noinput ...

…プロンプトにぶら下がる代わりにクラッシュします。

1

私はpython/pipの専門家とはほど遠いですが、数年間さまざまな目的で使用しており、インタラクティブなpipインストールの簡単な使用法にまだ遭遇していません。それほど単純ではないケースのための広範なオプションがあります(代替パッケージインデックス、キャッシング、開発モードなど)。何らかの操作が必要な特定のインストールケースがある場合、特別なオプションの正しい組み合わせを提供することで自動化できると思います ここ に文書化されています。

アンインストールは、私が対話を必要とすることにずっと慣れている場合(モジュールを削除するための明示的な確認を含む)であり、実際に、質問で言及する標準の -yesフラグ をサポートしています。

1
dkichler