我试图安装 chatterbot,但它依赖于 PyYAML=3.12。在我的 Ubuntu 机器上已经安装了 PyYAML 版本 3.11。所以我使用下面的命令来升级 PyYAML:
sudo -H pip3 install --upgrade PyYAML
但是它报错如下:
无法卸载 'PyYAML'。它是一个 distutils 安装项目,因此我们无法准确确定哪些文件属于它,这将导致部分卸载。
我的 pip3 版本是 10.0.0。
如何解决这个问题?
我试图安装 chatterbot,但它依赖于 PyYAML=3.12。在我的 Ubuntu 机器上已经安装了 PyYAML 版本 3.11。所以我使用下面的命令来升级 PyYAML:
sudo -H pip3 install --upgrade PyYAML
但是它报错如下:
无法卸载 'PyYAML'。它是一个 distutils 安装项目,因此我们无法准确确定哪些文件属于它,这将导致部分卸载。
我的 pip3 版本是 10.0.0。
如何解决这个问题?
尝试使用--ignore-installed
标志:
sudo -H pip3 install --ignore-installed PyYAML
这是因为要升级软件包,pip
首先会卸载旧版本,然后安装新版本。对于distutils软件包来说,卸载步骤会失败。使用--ignore-installed
标志,卸载步骤将被跳过,新版本将简单地安装在旧版本之上。
conda update env -f environment.yml
时出现错误,有什么解决方法吗? - Austinpip install --ignore-installed PyYAML
distutils
中的文件夹:sudo rm -rf /usr/lib/python3/dist-packages/yaml
, sudo rm -rf /usr/lib/python3/dist-packages/PyYAML-*
。 - baldr无法卸载'PyYAML'。它是一个distutils安装的项目,因此我们无法准确确定哪些文件属于它,这将导致只有部分卸载。
sudo rm -rf /usr/lib/python3/dist-packages/yaml
sudo rm -rf /usr/lib/python3/dist-packages/PyYAML-*
从distutils中删除文件夹即可解决问题。
conda update
,解决了我的pip install
问题,而不会像上面提到的其他依赖关系一样出现故障。 - Christopher Howlinconda remove PyYAML
pip install chatterbot
pip install chatterbot_corpus
这样做解决了我在尝试 from chatterbot import chatbot 时遇到的错误。
我曾遇到过类似问题,即使用conda安装了PyYAML
包。有人提出了另一种解决方法,即使用conda remove
。
但实际上,我通过使用conda update PyYAML
来解决这个问题,从而使用conda更新了pip试图更新的依赖项。
我刚刚不得不卸载python3-yaml并再次尝试使用pip
sudo apt-get purge python3-yaml
ubuntu-desktop
。 - Benjamin Brayapt purge
命令也会删除依赖于 python3-yaml
的许多软件包。我自己尝试了这个命令,apt 警告我如果继续执行,ubuntu-desktop 和其他一些重要的软件包也将被删除。 - Benjamin Bray--ignore-installed
,并且你正在运行Debian/Ubuntu,则可以尝试以下解决方案。apt
安装PyYAML作为其他软件包的依赖项。apt list --installed | grep python
并搜索任何yaml
出现。
2. 假设您发现了一个软件包python3-yaml
。
3. 搜索反向依赖项: apt-cache rdepends --installed python3-yaml
然后你可以:
1. 删除未使用的反向依赖项以及python3-yaml
2. 或者通过dpkg -r --force-depends python3-yaml
删除python3-yaml
并通过pip
重新安装它
3. 或者自己做决定并在评论中分享结果rm -rf /usr/lib/python3/dist-packages/yaml
rm -rf /usr/lib/python3/dist-packages/PyYAML-*
rm -rf /usr/lib/python3.8/site-packages/PyYAML-*
sudo -H pip3 install --ignore-installed PyYAML