Ubuntuが提供するものを既にインストールしている場合、pipの最新バージョンをインストールするにはどうすればよいですか?


18

Ubuntu 16.04の場合:

pip install --upgrade pip

あなたが得る:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

けっこうだ。今すぐ試してください

pip install --upgrade pip

あなたが得る:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

それでは、実際にpip 8.1.2を取得する方法は?


DOESのsudo -H pip install --upgrade pip作品?
edwinksl

@edwinksl:他のコマンドと同じ結果が得られます。
user2413

それは私のために働いたので、それは奇妙に思えます。おそらくバグレポートを提出する必要があります。
edwinksl

@edwinksl:ありがとう。私は>日以上のカップルを待って、それをやる
user2413

1
@edwinksl 誰かがそれを追跡したい場合に備えて、問題オープンしました
sethmlarson

回答:


13

あなたが実際にubuntuコードで作業していて特別な理由がない限り、システムのpythonを更新するのは良い考えではありません。APTリポジトリーでpython libsを使用する代わりに、pipで更新することで解消できる多くのシステム依存関係があります。

Pythonアプリケーションを開発していて、ライブラリのバージョンを変更する必要がある場合、--userオプションを使用してpipするか、virtualenvを作成してユーザーバージョンのlibを保存する必要があります。

これらのメソッドは両方とも、独自のコピーがない場合、システムライブラリの使用に適切にフォールバックします。virtualenvには、そのフィードバックを制御する方法に関するオプションがあります。

--userを使用したpip

これは、すべてのpipコマンドの最後に--userを追加するだけで簡単です。これにより、Pythonライブラリが〜/ .local / lib / pythonX.X(XXはPythonバージョン番号)に配置され、検索されます。システムpythonに影響を与える可能性があるため、sudoを介して実行する必要がある場合は、まずルートに対してこれを行うことに注意してください。

virtualenv

これは上記と同様に機能しますが、特定のユーザーとの結び付きが少ないため、sudoの制限はありません。また、virtualenvのクローンを作成し、アップグレードして変更をテストすることもできます。 http://docs.python-guide.org/en/latest/dev/virtualenvs/


1
2.7が必要な場合は、Pythonのaltインストールを本当に実行する必要があるため、OSのpythonに干渉しません。そこから、venvの前にaltインストールでpipを更新する必要があります。また、キャッシュされたバージョンがインストールされないように--no-cache-dirが必要です。
ウィルムウッド

pipを更新しても、デフォルトで出荷されるpython 2.7に悪影響はありません(とにかく)。
罹患

10

これは、pip8.1.2の.whlファイルのインストールに問題があるようです。pip8.1.2 をインストールする回避策は、PyPiからソースを直接ダウンロードし、を介してインストールすることsetup.pyです。

次は私のために働いた:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

もちろん、これはpip 8.1.2を介してインストールする解決策ではありませんが、この問題が解決さpip install --upgradeれるまで警告を抑える必要があります。


このスレッドにはコメントがあり、これは部分的にubuntuがパッケージ化されたバージョンのpipにパッチを当ててaptインストール済みパッケージのアップグレードを停止することに関連していることを示唆しています。
アミアス

5

sudo -H python -m pip install --upgrade pipあなたの問題を解決します。上記の誰かが述べたように、特定のシステムにはPython 2.7が必要です...それに悪影響を与えることなくpipをアップグレードできますが、必要に応じて3.5をインストールすることもできます。

これ-Hは、sudoセキュリティポリシーがHOME環境変数をターゲットユーザーのパスワードデータベースエントリで指定されたホームディレクトリに設定することを要求するためのフラグです。ポリシーによっては、これがデフォルトの動作になる場合があります。


誰かがこのような考え抜かれた投稿に投票したい場合は、なぜこれが下手なフォームなのかを本当に言うべきです。
javadba

彼らは怒っており、誰かに怒りを発散する必要があるからです。一般的に、あなたが尋ねることに怒っています。スタックオーバーフローが発生し、嫌がらせを受ける場所になっ
苦しんだ

2

apt-getを使用してpipをアンインストールし、easy_installを使用してインストールします。それは私のために働いた。

sudo apt-get remove python-pip
sudo easy_install pip

easy_installは失敗します。私は得るbash: /usr/bin/pip: No such file or directory。そして、私もピップをパージすることはできません。これが私のマシンのピップを完全に壊していないことを願っています。
Dean Schulze
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.