对于c/c++开发的同学来说,除了标准库外,依赖额外库相信都知道如何操作,但是那是c/c++情况下的加载依赖库的方法,在python下并不适用,但是他们的思想都是相通的。即
对于额外的第三方库或者自定以的库、模块若要使用,就要通过显式指定或者添加到对应机制的搜索路径下,对于linux下c/c++程序来说,对于LD_LIBRARY_PATH或者ld.so.conf这些都不陌生,本质还是对于额外依赖的库或者自定义库需要显式的告知程序环境,对于c/c++来说是编译、链接、运行环境;对于python来说则不是。虽然他们本质是一样的,但是细节上还是有所区别。
下面将详细的介绍python脚本如何加载别的模块。按照模块种类分别进行介绍。
标准库
若要使用标准库的中模块,直接在脚本中使用import导入即可。标准库中包含很多模块,例如os、sys、re等。示例如下所示:
import os
import re
第三方库下的模块
python开源社区有很多大佬,开发了很多常用的模块,有了这些开发者就不需要进行重复开发,大大提高了开发效率。将更多的精力投入到业务逻辑中。这些第三方库下的模块一般通过pip或者pip3来完成下载,安装到指定目录,这个目录一般在安装目录下的site-packages目录下。
言归正传,如果一个脚本若要使用调用第三方库的脚本,也不需要特殊处理,类似标准库一样,直接import调用即可。
自定义模块
除了上面的两种情况外,还有一种情况是脚本依赖内部独立开发的模块,这种情况下应该如何导入呢?这里分成三种情况来进行介绍:
- 内部开发的模块与依赖脚本在同级目录,这种情况下无需做任何处理,直接import即可。
- 内部开发的模块与依赖脚本在同级目录下子目录,这时候需要在子目录中添加__init__.py脚本,声明该目录是一个包,然后直接import接口,示例如下:
import package.module
上文中package是包名,module是模块名称。
- 若脚本依赖的模块在其它目录,则需要通过sys.path.append方法告将该目录添加到模块搜索路径中。注意这里跟第二种情况一样,也需要对应的目录添加__init__.py脚本,声明该目录是一个包目录。方法二是通过设置环境变量的方式也可以实现该模块的导入,环境变量名称为PYTHONPATH,设置环境变量的方式为永久方式,方法一通过sys.path.append是临时添加的方式,脚本执行完毕后不再生效。