Pythonパッケージを更新するにはどうすればよいですか?


234

Ubuntu 9:10を実行しています。M2Cryptoというパッケージがインストールされています(バージョンは0.19.1)。M2Cryptoパッケージの最新バージョン(0.20.2)をダウンロード、ビルド、インストールする必要があります。

0.19.1パッケージには、(/ usr / share / pysharedおよび/usr/lib/pymodules.python2.6)を含む多くの場所にファイルがあります。

0.20.2をインストールする前に、システムからバージョン0.19.1を完全にアンインストールするにはどうすればよいですか?

回答:


54

あなたはpipのようなPythonパッケージマネージャーを調べたいかもしれません。Pythonパッケージマネージャーを使用したくない場合は、M2Cryptoをダウンロードして、古いインストールの上にビルド/コンパイル/インストールできるはずです。


1
ありがとう。あなたが言ったことはうまくいきました。0.19.1をアンインストールせずに0.20.2をビルドしてインストールしました。
トンプソン、2011

461

私が見つけた最良の方法は、ターミナルからこのコマンドを実行することです

sudo pip install [package_name] --upgrade

sudo アクションを確認するためにrootパスワードの入力を求められます。


注:一部のユーザーには、代わりにpip3がインストールされている場合があります。その場合は、

sudo pip3 install [package_name] --upgrade

4
そして、認証なしでプロキシを使用している場合:sudo pip install [package] --upgrade --proxy = address:port
lmsasu

32
私はこの答えのためにここに来ました。私が試したpip updatepip upgrade、私は見るまで必死だった--upgradeここに。彼らはなぜpip upgradeコマンドを追加しないのですか?
Lars Blumberg

9
これは確かによく隠された機能です。
オトカン2017

1
Windowsユーザーの場合:sudo必須ではありません。
Stevoisiak

2
これが答え#1になるはずです
Cord Kaldemeyer 2018

48

すべての古いパッケージ(pipを使用してインストールされたもの)を自動的にアップグレードするには、次のスクリプトを実行します。

pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

ここでpip list --outdatedは、すべての古くなったパッケージをリストし、それをawkにパイプして、名前だけを出力します。次に、は$(...)それを変数にしてから、すべてが自動的に行われます。権限があることを確認してください。(sudo混乱している場合は、pipの前に配置してください)というスクリプトを記述しますpip-upgrade 。コードは以下のとおりです。

#!/bin/bash
sudo pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

次に、次のスクリプト行を使用して準備します。

sudo chmod +x pip-upgrade
sudo cp pip-upgrade /usr/bin/

その後、ヒットpip-upgradeしてほらほら!


:私は、内の最後のブラケットに構文エラーのポインティングを得たawk: cmd. line:1: { print $1 })
TT--

7
@TTの新しいバージョンでpipは、--format=legacyオプション、つまりを使用する必要がありますpip list --outdated --format=legacy。また、皆さん全員が参考にしてください。pipを介してすべてのモジュールを盲目的に更新することは、多くのLinuxディストリビューションでは非常に危険です。それらの多くはディストリビューションパッケージを介して特定のpythonモジュールを提供し、それらのディストリビューションの一部(特にRHEL)は、たわごとを更新するとハードブレークする可能性があります...ピップを介して更新すると、ディストリビューションパッケージが変更を元に戻す可能性があるという事実は言うまでもありません将来のアップデート。
rsaw 2017

@rsawに感謝します。--userオプションを指定してpipコマンドを実行する必要があります
Fahim Ferdous

1
私はこの答えが好きですが、すべてを自動的に更新することの危険性は理解しています。とにかく、レガシーはpip 19.0で廃止されているため、pip install $(pip list --outdated --format = columns | grep -v "Package" | grep -v----- | awk '{print $ 1}')-
マイクv

2
Ubuntuの18.04で動作するようにするには、以下のように適応venv:pip install $(pip list --outdated | tail +3 | grep -v sdist | awk '{ print $1 }') --upgrade
アレクサンダーRemesch

34
  1. Windowsコマンドプロンプトで次を実行しpip list --outdated ます。古いパッケージのリストが表示されます。
  2. 実行:以前のバージョンpip install [package] --upgrade をアップグレードし[package]てアンインストールします。

ピップを更新するには:

py -m pip install --upgrade pip

この場合も、以前のバージョンのpipがアンインストールされ、最新バージョンのpipがインストールされます。


29
  • 方法1:手動で1つずつアップグレードする

pip install package_name -U
  • 方法2:すべてを一度にアップグレードする(一部のパッケージがアップグレードに失敗した場合は、高確率でロールバックする)

pip install $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1) --upgrade
  • 方法3:ループを使用して1つずつアップグレードする

for i in  $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1); do pip install $i --upgrade; done


9

pipupgradeを使用してください!

$ pip install pipupgrade
$ pipupgrade --latest --interactive

pipupgradeは、システム、ローカル、またはパッケージをrequirements.txtファイルからアップグレードするのに役立ちます!また、変更を壊さないパッケージを選択的にアップグレードします。Python2.7 +、Python3.4 +、pip9 +、pip10 +、pip18 +と互換性があります。

ここに画像の説明を入力してください

注:私はツールの作成者です。


1
このツールを使用するたびに、「[0; 93mChecking ... [0m」という応答が返され、何も実行されません。間違って使用していますか?
バイオラティック

MacPortsを搭載したMacを使用しています。Python 3.7では、pipupgradeは50個中5個のパッケージでのみ機能し、残りのパッケージではこれを使用する必要がありましたpip3.7 list --outdated | sed -n -e '3,$s/ .*//p'。do pip3.7 install --upgrade $ i; 完了
マイケルドレー

4

パッケージは最初どのようにインストールされましたか?それがapt経由の場合、あなたはただ行うことができるでしょうapt-get remove python-m2crypto

easy_installを使用してインストールした場合、libや共有などでファイルをゴミ箱に移動することが唯一の方法だと思います。

今後の私のオススメは?pipなどを使用してパッケージをインストールします。さらに、virtualenvと呼ばれるものを調べて、パッケージがルートだけでなく環境ごとに保存されるようにすることもできます。

ピップを使うと、それは非常に簡単です:

pip install m2crypto

しかし、git、svnなどのリポジトリから正しいアドレスでインストールすることもできます。これはすべてpipドキュメントで説明されています


彼がファイルのインストール場所を説明する方法は、パッケージがaptパッケージマネージャーを使用してインストールされたことを示しています-(Debian AFAIKの場合)aptは彼がリストした2つの場所の下にpythonパッケージをインストールします-/ share / pyshared / ..は共有コード用ですバージョン間およびバージョン固有の部分の/ usr / lib / .. 一方、easy-install / pipは/ usr / local / lib / ..を使用します。つまり、あなたが言ったように、apt-get removeを実行するだけで済みます。
バーゼルシシャニ


3

Juptyer Notebookでは、非常に簡単な方法は

!pip install <package_name> --upgrade

したがって、実際のパッケージ名に置き換える必要があります。


2

すべての古いパッケージを取得し、次のコマンドpip install xxx --upgradeを使用してバッチファイルを作成します。

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