pipを最新にアップグレードする方法は?


51

エラーget-pip.pypip freezeスローした後に使用してpipをインストールしました

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
    req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 299, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

Storing debug log for failure in /home/simon/.pip/pip.log

1.7が最新のものであることを確認しました。以下の手順を実行しても更新されない場合...ここで助けてください...

simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip install -U pip
Downloading/unpacking pip
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
Successfully installed pip
Cleaning up...
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)

1
sudo -H pip3 install --upgrade pip
Moldovean

回答:


54

私は通常、次のコマンドを実行してpip2(= pipデフォルトで)とpip3:の両方をアップグレードします。

sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pip

pip最後に、番号のないコマンドに反応するバージョン(Python 2または3)を必ずアップグレードする必要があります。

また、これにより、パッケージ化された古いパッケージバージョンapt-getまたは他のパッケージマネージャーは保持されますが、システムパッケージとは関係のない新しいバージョンが追加されます。pip-installedパッケージが推奨されますが、-installedパッケージも削除しないでください。apt-getパッケージマネージャーは、他のpipバージョンがインストールされていることを認識できないためです。


3
なぜ家に住むことが重要なのsudo -Hですか?
レオレオポルドヘルツ

11
@Masiなぜならpip、ダウンロードしたファイルをどこかに書き込んでキャッシュしたいからです。現在のユーザーのホームディレクトリのサブフォルダーに配置するために実装されています。-H現在設定されているホームディレクトリ(通常のユーザー)が(root)として実行されているユーザーと一致しないことを検出するため、それなしで実行すると文句を言います。ホームディレクトリにファイルを書き込んだ場合、それらはルートによって所有され、通常のユーザーとしてアクセスできなくなります。したがって、この場合、ファイルはキャッシュされません。-Has pipがそれを検出して警告するのを省略するのはひどいことではありません。
バイトコマンダー

1
両方のコマンドが単にコマンドを上書きするのはなぜpipですか?アップグレードpip2しても、pip2コマンドはアップグレードされませんpip
Yep_It's_Me

@ Yep_It's_Meこれは、pip呼び出しているpythonのバージョンに関連しているためです。彼のコマンドがある理由とあるpip2pip3それぞれ更新ピップへのpythonの適切なバージョンを呼び出します。それは理にかなっていますか?
JayRizzo

27

私は思います

pip install --upgrade pip

コマンドはもう正しく動作しません。正しいコマンドは次のとおりです。

  • Python 3の場合:

    python3 -m pip install --upgrade pip
  • Python 2の場合:

    python2 -m pip install --upgrade pip

Gg @ david-foerster
JayRizzo

Linuxでは、次を使用しますpip install -U pippipのアップグレードを参照)
Eido95

1
ルートから(Dockerイメージで)pipを更新するときに問題が発生しましたが、これは魅力のように機能しました。
クリスチャンラモンコルテス

Linuxミントの魅力のように働いた
HelloWorld

5

このWebサイトhttps://pypi.python.org/pypi/pipにアクセスします

ソースリンクをコピー(または)ダウンロードします(末尾が.tar.gz)

9.0.1の場合、リンクは https://pypi.python.org/pypi?:action=show_md5&digest=35f01da33009719497f01a4ba69d63c9です

インストール手順

wget //link goes here
tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python3 setup.py install

バージョンを最新バージョンに変更する必要があり、リンクは最新バージョンのリンクで更新できます

これは動作するはずです


これは私のために働いた唯一のものです。なぜなら、他のすべてのものはシェルからサーバーへの接続を必要とし、同じエラーで再び失敗するからです。
Alok Rajasukumaran


1

以下で説明しているのは、pipがPython 2を指しpip3がPython 3を指す場合です。これに言及する理由は、pip3をアップグレードすると、pipコマンドも引き継ぐためです。まあ。デフォルトではpythonは2.xを指しpython3は3.xを指すため、これはやや奇妙な規則です。言われていること...

python 2.x pipとpython 3.x pip3の最新バージョンを同じマシン上に共存させる場合(2.xにはpip、3.xにはpip3を使用)、以下を実行する必要があります。

sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force
sudo python -m pip install pip --upgrade --force # this line associates pip with Python 2

他の回答では、sudo pip3 install pip --upgradeを実行した後、python 2.xディレクトリではなくpython 3.xディレクトリにパッケージをインストールするpipコマンドで終わることに言及していません。

私の一部は、pip3をアップグレードした後(pip-> pip3であっても)pipをそのままにしておくべきだと考えていますが、pipがpython 2.xを指すように機能することを期待しているという危険性があります。言い換えれば、人々はおそらく、Python 3.xでpip3 / python3を使用するように訓練されているのと同じように、python 2.xでpip / pythonを使用するように訓練されています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.