python -m pip install
代わりに使用pip install
例:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
pip
アップグレード後にこの問題が発生し始めました:
pip install --upgrade --user pip
pip
(それぞれpip3
)の実行可能ファイルは、ディストリビューション(から提供されたpython-pip
Ubuntuの16.04のパッケージ)。
そのため、pip
pipをアップグレードしてもパッケージ自体の最新の状態に保たれず、破損する可能性があります。
たとえば、次のようにpython -m pip
直接使用する場合:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
Pythonパスを通過し、最新バージョンのpipを見つけて、そのファイルを実行します。
それは、そのファイルが実行可能であるという事実に依存していますが、それは非常に標準的なタイプのインターフェースであり、したがって、ハッカーのDebianスクリプトよりも壊れにくいです。
次に、次のエイリアスをに追加することをお勧めします.bashrc
:
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
Ubuntu 18.04 /usr/bin/pip3
ファイルには次の機能があります。
from pip import main
おそらくある時点でmain
削除されpip
、それが物事を壊したのです。
破壊的なpipコミットは次のように見えます:95bcf8c5f6394298035a7332c441868f3b0169f4「すべての内部APIをpip._internalに移動」し、pip 18.0に入りました。
pip3
9.0.1から18.0への更新後にUbuntu 16.04でテスト済み。
pyenv
最終的には、深刻なPython開発のために、pyenv + virtualenvを使用して独自のローカルPythonをインストールすることをお勧めします。これにより、このUbuntuのバグも回避できます。apt -getを使用して別のPythonバージョンをインストールする方法はありますか?