在使用pip install命令安装python模块时,报错:

1
Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

错误分析

报错信息告诉我们:“不能卸载‘pyyaml’模块,因为这个模块是distutils方式安装的,不能确定哪些文件属于这个模块,因此不能完整地卸载这个模块。”

distutils是python最初的模块安装和分发系统,distutils不会保留哪些文件属于哪个安装包的信息,甚至不会保留安装包之间的依赖关系。直接使用distutils的方式已经被淘汰,取而代之的是setuptools.
所谓模块的分发,就是开发者打包并发布自己的模块,供其他人使用。

这样我们就知道了,因为pyyaml模块时通过distutils方式安装的,因此不能明确文件与包之间的隶属关系,不能正确卸载。

解决办法

使用下面的命令忽略已安装的模块,强制安装和更新

1
pip3 install <package-name> --ignore-installed <pyyaml> --upgrade

参考链接