导入失败问题,通常分为两种:一种是导入自己写的模块(即以.py 为后缀的文件),另一种是导入三方库。本文主要讨论第二种情况,今后有机会,我们再详细讨论其它的相关话题。
解决导入Python库失败的问题,其实关键是在运行环境中装上缺失的库(注意是否是虚拟环境),或者使用恰当的替代方案。这个问题又分为三种情况:
一、单个模块中缺失的库
在编写代码的时候,如果我们需要使用某个三方库(如 requests),但不确定实际运行的环境是否装了它,那么可以这样:
try:
import requests
except ImportError:
import os
os.system('pip install requests')
import requests
这样写的效果是,如果找不到requests 库,就先安装,再导入。
在某些开源项目中,我们可能还会看到如下的写法(以json 为例):
ry:
import simplejson as json
except ImportError:
import json
这样写的效果是,优先导入三方库simplejson,如果找不到,那就使用内置的标准库json。
这种写法的好处是不需要导入额外的库,但它有个缺点,即需要保证那两个库在使用上是兼容的,如果在标准库中找不到替代的库,那就不可行了。
如果真找不到兼容的标准库,也可以自己写一个模块(如my_json.py),实现想要的东西,然后在except语句中导入它。
ry

本文探讨了在Python中如何处理导入三方库失败的问题,包括单个模块、整个项目及自动导入缺失库的方法。介绍了使用try-except安装库、利用setup.py文件、以及自定义加载器实现自动导入。同时提到了importlib.abc和importlib.machinery在自动导入中的作用。
最低0.47元/天 解锁文章
550

被折叠的 条评论
为什么被折叠?



