我已经使用我的包管理器 ( ) 安装了一些 Python 包pip
和其他一些包pacman
。现在,每次我想更新系统时,它都会说某些文件已经存在,因为它尝试安装一些我已经拥有的依赖Python模块。我该如何解决这个问题?
要重现该问题,您可以简单地尝试通过包管理器安装某些东西pip
,然后安装相同的包,即:
$ sudo pip 安装 numpy
进而
$ sudo pacman -S python-numpy
答案1
首先,您可以按照安装它们的方式删除它们,使用pip
.
如果这不起作用,识别不属于包的所有文件。您可以使用丢失的文件去做这个。然后手动删除这些文件。
然后,接下来,要么使用 pacman 安装所有 python(ruby、node,等等)软件包,要么使用开关--user
安装到 $HOME。
答案2
警告:此答案使用命令--force
的选项pacman
。当且仅当您了解自己在做什么时才应该使用它!
- 通过以下方式导出安装的软件包列表
pip
:
>>> pip freeze > packages.txt
- 启动此命令:它将重新下载并安装未在数据库中标记为的
pacman
安装包。pip
installed
pacman
>>> for i in $(awk -F "==" '{print $1}' packages.txt);执行 sudo pacman -S --needed --force --noconfirm python-$i;完毕
python2
您可以通过在上述命令2
之后python
和中添加来执行相同的操作。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
将其保存到文件,授予该文件执行权限并运行。