web-dev-qa-db-ja.com

すべてのpythonモジュールを最新の安定バージョンにpipまたはpip3で正しくアップグレードするにはどうすればよいですか?

システムにpipおよびpython-pipを取得するためにpython-pip3およびpip3パッケージをインストールしたと考えてみましょう。

私が理解できる限り、pipsは pypi.org のパッケージマネージャーです。 apt updateapt upgrade、およびapt dist-upgradeに似た機能があると思います。

すべてのpythonモジュールをpipまたはpip3で最新の安定バージョンに正しくアップグレードする方法

2
N0rbert

これは、古いバージョンのpipで機能します。

pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U
1
Christopher M

私はこれをpip2とpip3でテストしましたが、成功するかどうかはわかりませんが、もっと良い方法があるかどうかはわかりません。

pip freeze | sed 's/==.*//' | xargs pip install -U

システムではなく、ユーザーアカウントにインストールされたパッケージのみをアップグレードする場合は、--userおよびpip freezeの後にpip installを追加できます。システムPythonパッケージをアップグレードする場合は、pip installSudoで実行する必要があります。そうしないと、アクセス許可拒否エラーが発生する可能性があります。

1
Jamie Scott

Pipには、Debian/Ubuntuにあるような「最新の安定版」という概念はありません。

Debian/Ubuntuの「最新の安定した」パッケージは、ディストリビューションの他のすべてのパッケージで正しく動作するようにテストされています。

Pipを使用すると、すべてのpythonモジュールをアップグレードできますが、すべてのモジュールをリポジトリで利用可能な最新バージョンにアップグレードします。すべてが引き続き機能することを確認するのはお客様の責任です。新しいバグまたは互換性のない変更による問題がある可能性があります。

そのため、可能な破損を修復する準備ができていない限り、OSが提供するpythonモジュールをpip(オプション:--system)でアップグレードしないでください。

ユーザー環境にインストールされているすべてのモジュールをアップグレードするか、仮想環境内にアップグレードする方が理にかなっています。コマンドは次のとおりです。

pip freeze | awk '{print $1}' | xargs pip install -U

さまざまなディストリビューションやその他のケースのユーザーについては、以下を確認してください。

pip help install

デフォルトの動作(--userまたは--systemオプションなし)がDebianの派生物から標準のpythonに変わるためです。

1
Telegrapher