pip --force-reinstall¶
問題点¶
現在、pip install [パッケージ名] --force-reinstall
が実行されると、pip は以前にインストールされたバージョンのパッケージを再インストールするのではなく、利用可能な最新バージョンでパッケージをインストールします。
つまり、pip install [パッケージ名] --force-reinstall
は pip [パッケージ名] --upgrade
のように動作します。
ユーザーがこの暗黙的な動作を理解しているか(または望んでいるか)を把握する必要があります。
詳細については、この GitHub Issue を参照してください。
調査¶
--force-reinstall
オプションに対するユーザーの要望を理解するために、次のシナリオでアンケートを実施しました。
requests パッケージとその依存関係がインストールされているとしますrequests==2.22.0
asgiref==3.2.10
certifi==2020.6.20
chardet==3.0.4
Django==3.1
idna==2.8
pytz==2020.1
sqlparse==0.3.1
urllib3==1.25.10「pip install requests --force-reinstall」を実行した場合、どうなるべきですか?
回答者は、次のいずれかのオプションを選択できます。
pip は同じバージョンの requests を再インストールします。pip は requests の依存関係を再インストールしません。
pip は requests とその依存関係を再インストールし、これらのパッケージをすべて最新の互換性のあるバージョンに更新します
pip は requests とその依存関係を再インストールし、すべてのパッケージを同じバージョンに維持します
pip は requests を再インストールし、最新バージョンに更新します。pip は新しいバージョンをサポートするために必要に応じて requests の依存関係を更新します。
pip が何をすべきかわかりません
質問の意味がわかりません
その他 (回答者が独自の回答を提供できる)
また、pip --force-reinstall
がどれほど役立つか、およびどれくらいの頻度で使用されるかについても質問しました。
結果¶
合計 190 件の回答がアンケートに寄せられ、186 人が --force-reinstall
オプションが実行された場合に pip が何をすべきかを教えてくれました。
回答者の 31.7% (186 人中 59 人) が、pip は requests とその依存関係を再インストールし、すべてのパッケージを同じバージョンに維持するべきだと回答しました
回答者の 28% (186 人中 52 人) が、pip は requests を再インストールし、最新バージョンに更新し、pip は新しいバージョンをサポートするために必要に応じて requests の依存関係を更新するべきだと回答しました。
回答者の 15.6% (186 人中 29 人) が、pip は requests とその依存関係を再インストールし、これらのパッケージをすべて最新の互換性のあるバージョンに更新するべきだと回答しました
回答者の 14% (186 人中 26 人) が、pip は同じバージョンの requests を再インストールし、requests の依存関係を再インストールするべきではないと回答しました
回答を「アップグレード」または「アップグレードしない」にグループ化すると(グループ化できない回答は無視します)、次のようになります。
回答者の 46.32% (186 人中 88 人) が、pip は同じバージョンの requests をインストールするべきであると考えました。つまり、
--force-reinstall
は暗黙的にアップグレードすべきではありません。回答者の 43.16% (186 人中 82 人) が、pip は requests を最新バージョンにアップグレードするべきであると考えました。つまり、
--force-reinstall
は暗黙的にアップグレードすべきです。
ほとんどの回答者は、--force-reinstall
を「ほぼ使用しない」(65.6%)と回答しています。
--force-resinstall
を頻繁または非常に頻繁に使用すると回答した回答者のうち
回答者の 54.54% (11 人中 6 人) が、pip は同じバージョンの requests をインストールするべきであると考えました。つまり、
--force-reinstall
は暗黙的にアップグレードすべきではありません。回答者の 45.45% (11 人中 5 人) が、pip は requests を最新バージョンにアップグレードするべきであると考えました。つまり、
--force-reinstall
は暗黙的にアップグレードすべきです。
回答者は、--force-reinstall
を便利であるよりも便利でないと考えています。
--force-resinstall
が便利であるまたは非常に便利であると回答した回答者のうち
回答者の 38.46% (52 人中 20 人) が、pip は同じバージョンの requests をインストールするべきであると考えました。つまり、
--force-reinstall
は暗黙的にアップグレードすべきではありません。回答者の 50% (52 人中 26 人) が、pip は requests を最新バージョンにアップグレードするべきであると考えました。つまり、
--force-reinstall
は暗黙的にアップグレードすべきです。
推奨事項¶
このオプションは定期的に使用されておらず、便利であると強く評価されていないため、開発チームはメンテナンスのオーバーヘッドを削減したい場合は --force-reinstall
の削除を検討することをお勧めします。
この場合、ユーザーが --force-reinstall
を使用しようとしたときに、次のメッセージを表示することをお勧めします。
エラー: pip install --force-reinstall オプションは存在しなくなりました。最新のパッケージを置き換えるには pip uninstall の後に pip install を使用するか、パッケージを最新の利用可能なバージョンに更新するには pip install --upgrade を使用してください。
pip 開発チームが --force-resintall
を保持したい場合は、pip のユーザーが異なる動作に対する明確な選好を示していないため、現在の(暗黙的なアップグレード)動作を維持することをお勧めします。
この場合、ヘルプテキスト をより明確にすることをお勧めします。
古いヘルプテキスト
すべてのパッケージがすでに最新の状態であっても、再インストールします。
新しいヘルプテキスト
パッケージとその依存関係がすでに最新の状態であっても、再インストールします。パッケージが最新の状態でない場合は、(バージョン指定子が使用されていない限り)これらを最新バージョンにアップグレードします。