Arch-Linux
修復所有 pip 和包管理器不兼容問題
pip
我已經用我的包管理器 ( )安裝了一些 Python 包和其他一些包pacman
。現在,每次我想更新系統時,它都會說一些文件已經存在,因為它試圖安裝一些我已經擁有的依賴 Python 模組。我該如何解決這個問題?要重現此問題,您可以簡單地嘗試通過包管理器安裝一些東西
pip
,然後通過包管理器安裝相同的包,即:$ sudo pip install numpy
進而
$ sudo pacman - S python - numpy
警告:此答案使用命令的
--force
選項pacman
。當且僅當您了解自己在做什麼時,您才應該使用它!
- 導出通過以下方式安裝的軟體包列表
pip
:>>> pip freeze > packages.txt
- 啟動此命令:它將通過未標記為在數據庫中的
pacman
軟體包重新下載和安裝。pip``installed``pacman
>>> 因為我在 $ (awk -F “==” ‘{print $1}’ packages.txt); do sudo pacman -S –needed –force –noconfirm python- $ 一世; 完畢
- 您可以通過在上面的命令中
python2
添加2
afterpython
和來執行相同的操作。pip
- 從現在開始,只使用
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。