修复所有 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 freeze > packages.txt

  1. 启动此命令:它将重新下载并安装未在数据库中标记为的pacman安装包。pipinstalledpacman

>>> for i in $(awk -F "==" '{print $1}' packages.txt);执行 sudo pacman -S --needed --force --noconfirm python-$i;完毕

  1. python2您可以通过在上述命令2之后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

将其保存到文件,授予该文件执行权限并运行。

相关内容