在使用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 |