pip 在互動式環境(例如 CI、CD)中的使用方式

問題

我們想要了解 pip 使用者在哪些情境下使用 pip - 互動式(例如在命令列終端機中輸入 pip 指令)和自動化環境(例如作為連續軟體整合或連續軟體開發管線的一部分)中。

不同的使用情境表示使用者有不同且常見的任務;表示他們完成這些任務的時間、地點和方式各有不同。

這些情境各有不同的需求:互動式使用需要在適當時機得到正確的回饋/輸出,而自動化環境則需要在當下幾乎或完全不需要回饋,但在任務結束後需要詳細的回饋。

我們也想了解使用者用 pip 做什麼 - 作為其軟體開發工具鏈的一部分,或純粹作為軟體安裝程式(類似於 Ubuntu Aptitude 或 Mac Appstore)。我們也詢問他們是否需要使用 pip 從來源中建置封包。

研究

我們建立了一份問卷調查,並請使用者回答以下陳述

  • 我在自動化環境(例如 CI/CD 管線)中使用 pip

  • 我在 CI/CD 管線中遇到 pip 問題

  • 我互動式地使用 pip(例如在命令列中輸入 pip 指令)

  • 我撰寫軟體,並且將 pip 用於軟體開發工作流程中

  • 我只使用 pip 安裝和使用 Python 封包

  • 我需要 pip 從來源中建置軟體封包

結果

互動式地使用 pip 是 pip 用途的大宗(91%),其中大部分(73%)屬於基本用途 - 只用來安裝和使用 Python 封包。

所有參與者中有一半(51%)在自動化環境中使用 pip,只有 9% 的人在那個自動化環境中遇到 pip 問題。這表示這些使用者有著良好的使用體驗。

71% 使用 pip 作為其軟體工具鏈的一部分,只有 29% 需要使用 pip 從來源中建置。

這些結果顯示,主要的用途情境是互動式的 - 使用者撰寫程式碼、在命令列中安裝軟體,且我們從其他研究中得知互動式使用有它的問題,例如 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?