Python使用requests调用API时无法导入b64encode的ImportError如何解决
问题根因
该报错由Python模块命名冲突导致:从报错栈的最后一行可以明确看到,Python导入base64依赖时,优先加载了你当前工作目录(桌面)下自己创建的base64.py文件,而非Python官方内置的标准库base64模块。你自定义的这个文件中没有实现b64encode方法,因此所有依赖标准库base64的第三方库(包括requests、urllib3等)都会触发导入错误。
修复步骤
- 进入
/home/liana/Desktop/路径,将你自定义的base64.py文件重命名为不与标准库重名的名称,例如base64_demo.py - 删除同目录下生成的
base64.pyc字节码缓存文件(如果存在) - 重新运行你的测试代码即可正常执行
注意事项
- 后续编写Python代码时,禁止将自定义脚本命名为Python内置标准库的名称,常见的容易踩坑的名称包括
base64.py、requests.py、json.py、math.py、time.py等 - Python的模块导入优先级是当前工作目录 > 第三方库路径 > 系统标准库路径,因此当前目录下的同名文件会直接覆盖官方库的导入。
内容的提问来源于stack exchange,提问作者Melika
相关产品推荐
相关产品推荐

