Mac系统下使用pip3安装importlib失败的技术求助
解决Python 3.7中importlib.reload的使用与安装报错问题
嘿,我来帮你理清这个问题!首先得告诉你一个关键信息:**Python 3.3及以上版本已经内置了importlib模块,根本不需要通过pip安装!**你执行sudo -H pip3 install importlib反而踩了坑——这个pip上的importlib包是给Python 2.6及更早版本准备的,和Python 3.7完全不兼容,这就是你报错的根源。
正确的代码修改方式
先把错误的安装操作抛在一边,直接用系统内置的模块就行:
- 你原来Python 2.7的代码是这样的:
import sys reload(sys) sys.setdefaultencoding('utf-8') - 升级到Python 3.7后,只需要改成:
另外还要划重点:**Python 3里默认字符串编码就是UTF-8了,import sys from importlib import reload reload(sys)sys.setdefaultencoding()这个方法在Python 3中已经被彻底移除,完全不需要再写这一行!**如果你的脚本里没有特别依赖reload sys的场景,甚至连这两行都可以删掉。
为什么会出现那个安装报错?
你看到的ModuleNotFoundError: No module named 'importlib.util'是因为你安装的老旧importlib包和Python 3.7内置的importlib冲突了。这个老旧包试图覆盖系统内置模块,但它本身根本不包含importlib.util这个子模块,而系统原本的importlib是有的,结果被搞乱了,就出现了找不到模块的错误。
清理残留问题
如果你已经执行了错误的安装命令,记得用下面的命令卸载这个冲突的包,恢复系统内置的importlib:
sudo -H pip3 uninstall importlib
内容的提问来源于stack exchange,提问作者Á. Garzón
相关产品推荐
相关产品推荐

