すべてのpipとパッケージマネージャの非互換性を修正[閉じる]

すべてのpipとパッケージマネージャの非互換性を修正[閉じる]

パッケージマネージャ()を使用して、いくつかのPythonパッケージpipと他のパッケージをインストールしましたpacman。システムを更新しようとするたびに、すでに持っているいくつかの依存Pythonモジュールをインストールしようとしているため、特定のファイルがすでに存在することを示すメッセージが表示されます。この問題をどのように解決できますか?

pip問題を再現するには、パッケージマネージャを介して何かをインストールしてから同じパッケージをインストールしてみてください。例:

$ sudo pip インストール numpy

それから

$ sudo pacman -S python-numpy

答え1

まず、を使用してインストールしたのと同じ方法で削除できますpip

これがうまくいかないと、パッケージの一部ではないすべてのファイルを識別します。。あなたはそれを使用することができます失われたファイル行ってこれをやってみてください。その後、そのファイルを手動で削除します。

次に、pacmanを使用してすべてのPython(ruby、nodeなど)パッケージをインストールするか、スイッチを使用して--user$ HOMEにインストールします。

答え2

警告:この回答はコマンド--forceのオプションを使用しますpacman。自分が何をしているのかを知っている場合にのみ使用してください。

  1. 以下でインストールされたパッケージのリストをエクスポートしますpip

>>> pip凍結> packages.txt

  1. このコマンドを開始します。データベースに表示されていないpacmanインストールパッケージを再ダウンロードしてインストールします。pipinstalledpacman

>>> $(awk -F "==" '{print $1}' packages.txt) の場合、 sudo pacman -S --needed --force --noconfirm python-$i; を実行します。

  1. python22上記のコマンドにafterをpython追加して同じ操作を実行できます。pip

  2. これからのみ使用してpacmanは使用しないでくださいpip。必要に応じて、pipパッケージを使用して特定のバージョンにアップグレード/ダウングレードできます。

必要に応じてスクリプトバージョンを使用することもできます。

#!/bin/sh
pip freeze > packages.txt
for i in $(awk -F "==" '{print $1}' packages.txt)
do
     sudo pacman -S --needed --force --noconfirm python-$i
done

ファイルに保存し、ファイルに実行権限を付与して実行します。

関連情報