Arch-Linux

修復所有 pip 和包管理器不兼容問題

  • July 18, 2018

pip我已經用我的包管理器 ( )安裝了一些 Python 包和其他一些包pacman。現在,每次我想更新系統時,它都會說一些文件已經存在,因為它試圖安裝一些我已經擁有的依賴 Python 模組。我該如何解決這個問題?

要重現此問題,您可以簡單地嘗試通過包管理器安裝一些東西pip,然後通過包管理器安裝相同的包,即:

$ sudo pip install numpy

進而

$ sudo pacman - S python - numpy

警告:此答案使用命令的--force選項pacman。當且僅當您了解自己在做什麼時,您才應該使用它!

  1. 導出通過以下方式安裝的軟體包列表pip

>>> pip freeze > packages.txt

  1. 啟動此命令:它將通過未標記為在數據庫中的pacman軟體包重新下載和安裝。pip``installed``pacman

>>> 因為我在 $ (awk -F “==” ‘{print $1}’ packages.txt); do sudo pacman -S –needed –force –noconfirm python- $ 一世; 完畢

  1. 您可以通過在上面的命令中python2添加2afterpython和來執行相同的操作。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

將其保存到文件,授予該文件的執行權限並執行。

首先,您可以按照安裝它們的方式刪除它們,使用pip.

如果這不起作用,請辨識所有不屬於 package 的文件。您可以使用lostfiles來執行此操作。然後手動刪除這些文件。

然後,繼續前進,要麼使用 pacman 安裝所有 python(ruby、node 等)包,要麼使用--user開關安裝到 $HOME。

引用自:https://unix.stackexchange.com/questions/456638