インタラクティブ環境(CI、CDなど)でのpipの使用方法

問題

pipユーザーがpipを使用するコンテキスト、つまりインタラクティブに(コマンドラインターミナルでpipコマンドを入力する)、および自動化された環境(継続的ソフトウェアインテグレーションまたは継続的ソフトウェア開発パイプラインの一部として)でどのように使用するかについて知りたいと考えています。

使用コンテキストが異なれば、ユーザーにとって重要で一般的なタスクも異なり、タスクをいつ、どこで、どのように完了するかが異なります。

これらの各コンテキストには、それぞれ異なるニーズがあります。インタラクティブな使用では、適切なタイミングで適切なフィードバック/出力が求められる一方、自動化された環境では、その場でのフィードバックはほとんど、またはまったく必要ありませんが、タスク完了後の詳細なフィードバックが必要です。

また、ユーザーがpipを何のために使用しているか、つまりソフトウェア開発ツールチェーンの一部として、または純粋にソフトウェアインストーラーとして(Ubuntu AptitudeやMac Appstoreのように)使用しているかを知りたいと考えていました。また、ソースからパッケージをビルドするためにpipが必要かどうかについても質問しました。

調査

アンケートを作成し、ユーザーに次のステートメントへの回答を求めました

  • 自動化された環境(CI/CDパイプラインなど)でpipを使用しています

  • CI/CDパイプラインでpipに問題があります

  • インタラクティブにpipを使用しています(コマンドラインでpipコマンドを入力するなど)

  • ソフトウェアを作成し、ソフトウェア開発ワークフローの一部としてpipを使用しています

  • Pythonパッケージをインストールして使用するためだけにpipを使用しています

  • ソースからソフトウェアパッケージをビルドするためにpipが必要です

結果

pipのインタラクティブな使用は、pipの使用の大部分を占めており(91%)、この使用の大部分(73%)は、Pythonパッケージをインストールして使用するためだけの基本的な使用です。

参加者の半数(51%)が自動化された環境でpipを使用しており、その自動化された環境でpipに問題を抱えているのはわずか9%でした。これは、これらのユーザーにとって良好な使用体験を示しています。

71%がソフトウェアツールチェーンの一部としてpipを使用しており、ソースからビルドするためにpipを必要としているのは29%のみです。

これらの結果は、主な使用コンテキストがインタラクティブであることを示しています。ユーザーはコードを作成したり、コマンドラインでソフトウェアをインストールしたりしており、他の調査から、インタラクティブな使用には、pipの出力が冗長すぎるなど、問題があることがわかっています。

自動化された環境のユーザーに良好なエクスペリエンスを提供することは重要ですが、インタラクティブモードのユーザーは十分なサービスを受けていません。

Answer to question - I use pip in an automated environment

Answer to question - I use pip interactively

ユーザーの91%がインタラクティブにpipを使用していると回答しました。これは、彼らが自動化された使用をできないという意味ではありません。

Answer to the question - What do you use Python for?