Python3中importlib.util是什么?Python3.6安装模块遇ImportError求助
先说说importlib.util是什么
importlib.util 是Python 3标准库中importlib模块的子模块,专门用来处理自定义导入相关的逻辑——比如动态加载指定路径的模块、检查某个模块是否存在、手动构建模块对象等等。重点是:它是Python自带的标准库组件,完全不需要通过pip去安装。
为什么Python 3.6会出现No module named "importlib.util"的错误?
按道理来说,importlib.util从Python 3.4开始就已经纳入标准库了,Python 3.6肯定自带这个模块,出现这个错误大概率是环境的问题,给你几个排查方向:
先确认你用的是不是真正的Python 3.6
有时候终端里的python命令可能指向Python 2(尤其是在一些老系统里),你可以在终端运行:python --version # 或者用python3试试 python3 --version确保输出的是
Python 3.6.x,如果不是,就用python3来执行你的代码和安装命令。检查Python环境是否被破坏
如果确认是Python 3.6但还是报错,可能是标准库的文件缺失或者sys.path被错误修改了。你可以运行下面的代码看看sys.path是否包含Python标准库的路径:import sys print(sys.path)如果标准库路径不在里面,可能需要修复环境;如果是文件缺失,最简单的办法就是重新安装Python 3.6。
别用pip安装
importlib!
你尝试用pip install importlib是踩坑了——PyPI上的importlib包是给Python 2.x用的(Python 2没有自带importlib),Python 3装这个包反而会和自带的标准库冲突,导致模块找不到的问题。如果已经装了,赶紧用pip uninstall importlib删掉它。
关于安装imagescanner时的相同错误
这个问题其实是连锁反应:因为你的Python环境找不到importlib.util,而imagescanner的代码里用到了这个模块,所以安装时才会报错。解决上面的环境问题之后,再重新运行pip install imagescanner,应该就能正常安装了。如果还是不行,可以去看看imagescanner的官方文档,确认它是否支持Python 3.6版本,有没有其他依赖需要提前安装。
内容的提问来源于stack exchange,提问作者hccavs19

