如何解决python报错 No module named distutils?
发布于 作者:苏南大叔 来源:程序如此灵动~
报错没有发现模块disutils的问题,是个历史遗留问题。所以,对于目前占主流地位的python3来说,解决方案就是安装setuptools。然而,由于python3的各个版本之间的众所周知的不兼容问题,也可能会有其它的报错信息出现,一旦局面不可控,降级python的版本才可能是解决这个问题的最好办法。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。本文测试环境:win10,anaconda@2023.09,python@3.8。
报错信息
报错信息可能略有不同,但是大体上都会提及disutils字样。其实都是使用最新的python去运行适配以前版本的python代码的结果。
ModuleNotFoundError: No module named distutilsdisutils已被废除
下面的文字来自于网络:
随着3.12的发布,distutils终于被移除。根据PEP 632,distutils在3.10中被标记为废弃,在3.12中将不再是标准库的一部分。从distutils中导入将导致一个错误,因为不会有向后兼容的情况出现。
Distutils曾经是Python中软件包管理的首选模块,但它的局限性导致了setuptools的兴起,根据Python打包用户指南,它现在已经成为推荐的解决方案。Setuptools仍然使用distutils的一些功能,但它集成了后者的一个副本,不再依赖标准库。Pip用setuptools替换distutils已经有一段时间了,所以在3.12中删除传统的distutils模块是合理的。
安装setuptools
在目前的python3系列中,这个disutils模块已经被setuptools所取代。所以可以执行:
pip install setuptools如果还存在类似的症状,也可以试着再upgrade一下。
pip install --upgrade setuptools如果还是不行,那么就降级python的版本吧。无数次的失败经验表明:使用最新的python版本,总不是一个明智的选择。
结语
文章越写越水了,大家凑乎着看吧。更多苏南大叔的python经验文章,请参考: