Ubuntuファミリー、Debian、Linux Mintユーザーの場合
上記の Anthonyの説明のおかげで、元のシステムpip(/ usr / bin /およびdist-packages /内)を保持し、手動でインストールしたpip(〜/ .local /内)を削除して競合を解決できます。
$ python3 -m pip uninstall pip
python3-pip
debianパッケージ(を参照$ pip3 -V
)のUbuntu / Debian pip v8.1.1(16.04)は、最新のpip v10.0.1と同じ検索結果を表示し、PyPIから最新のモジュールを正常にインストールします。動作するpip
コマンド(すでに$ PATH --user
に含まれています)に加えて、2016年以降、デフォルトでパッチが適用された素晴らしいオプションがあります。pipリリースノートを見ると、新しいバージョンは主にユースケース固有のバグ修正と特定の新機能に関するものなので、誰もがまだピップをアップグレードする急いでいる必要があります。そしてとにかく、新しいpip 10をPython virtualenvsにデプロイできます。
しかし、pipsに関係なく、OSは、pipを必要とせずに、APTを使用して一般的なPythonモジュール(numpyを含む)をすばやくインストールできます。例:(
$ sudo apt install python3-numpy python3-scipy
システム依存関係あり)
$ sudo apt install python3-pip
(Debianパッチのpip、少し古いが問題ではない)
クイックaptシンタックスリマインダー(詳細はこちらman apt
をご覧ください):(
$ sudo apt update
最新のソースからUbuntuパッケージインデックスファイルを再同期するため
$ apt search <python-package-name>
)
$ apt show <python-package-name>
(使用可能なすべてのパッケージの全文検索)(詳細なパッケージの説明を表示します)
$ sudo apt install <python-package-name>
接頭辞が付いたパッケージ名python-
はPython 2用です。接頭辞python3-
はPython 3用です(例:python3-pandas)。何千人もいて、DebianとUbuntu内での統合テストを受けています。ユーザーごとのレベル(pip install --user
オプション)またはvirtualenv / venv内にインストールする場合を除き、aptが必要な場合があります。これらのシステムパッケージは、あまりにも仮想ENVSからアクセスできvirtualenvのは優雅にあなたのENVSは、モジュールのコピーを与えられていない場合は、インポート時に、システムのLIBSを使用するようにフォールバックします。カスタムインストールされた(pipを使用した--user
)ユーザーごとのモジュール~/.local/lib
もそれらをオーバーライドします。
これはシステム全体のインストールであるため、削除する必要はほとんどありません(OSの依存関係に注意する必要があります)。APTは追跡し、必要なすべてのシステムライブラリとC拡張機能を提供しますが、pipを使用するとそのような保証はありません。これは、多くのシステム依存関係(scipyやmatplotlibなど)を持つパッケージに便利です。
実際、システム全体のPythonパッケージ(ユーザーごと、ホームディレクトリレベル以下)とは異なり、Ubuntu は(ではなくsudo pip
)APTパッケージマネージャーを使用してOSの破損を回避することを期待しています:APTがOSを格納するディレクトリとsudo pip3
まったく同じ/usr/lib/python3/dist-packages
ディレクトリをターゲットにします-sensitiveモジュール。最近のDebian / UbuntuリリースはPython 3に大きく依存しているため、そのプレインストールモジュールはによって管理されてapt
おり、変更してはなりません。
したがって、pip3 install
コマンドを使用する場合は、virtualenv(sudo apt install python3-virtualenv
)、Python3ビルトイン()、-m venv
ユーザーごとのレベル(--user
pipオプション、Ubuntu提供のデフォルトでは)などの分離された仮想開発環境で実行するようにしてください。2016年以来PIP)、しかしないシステム全体(決してsudo pip3
!)、ピップので干渉する APTパッケージマネージャの動作には、とUbuntu OSの影響を与える可能性がありコンポーネントをシステムに使用されるのpythonモジュールが予期せず変更されたとき。幸運を!
P. S. 上記はすべて「理想的な」ソリューション(Debian / Ubuntuの方法)に関するものです。
それでも新しいpip3 v10を独占的に使用したい場合は、3つの簡単な回避策があります。
- 単に新しいbashセッション(新しいターミナルタブ、またはを入力
bash
)を開くだけで、pip3 v10が利用可能になります(を参照pip3 -V
)。debianのpip3 v8はインストールされたままですが、壊れています。または
$ hash -d pip3 && pip3 -V
$ PATHのpip3パス名を更新するコマンド。debianのpip3 v8はインストールされたままですが、壊れています。または
$ sudo apt remove python3-pip && hash -d pip3
新しいpip3 v10を支持して、debianのpip3 v8を完全にアンインストールするコマンド。
注:--user
virtualenvを使用している場合を除き、debianが提供していないPIPには常にフラグを追加する必要があります。(これはpythonパッケージをにデプロイします~/.local/
。デフォルトはdebian / ubuntuが提供するpython3-pipとpython-pipで2016年からです)。virtualenv以外のシステム全体でのpip 10の使用は、Ubuntu / Debianでは実際にはサポートされていません。絶対にsudo pip3
!
詳細:
https : //github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100