文章插图
作者 | 写代码的明哥
题图@视觉中国
来源 | Python编程时光(ID: Cool-Python)
今天这篇文章,跟大家分享 8 种导入模块的方法 。
直接 import人尽皆知的方法,直接导入即可
>>> import os>>> os.getcwd'/home/wangbm'与此类似的还有,不再细讲
import ...import ... as ...from ... import ...from ... import ... as ...一般情况下,使用
import
语句导入模块已经够用的 。但是在一些特殊场景中,可能还需要其他的导入方式 。
下面我会一一地给你介绍 。
使用 __import__
__import__
函数可用于导入模块,import 语句也会调用函数 。其定义为:__import__(name[, globals[, locals[, fromlist[, level]]]])参数介绍:- 【Python炫技操作:花式导包的八种方法】name (required): 被加载 module 的名称
- globals (optional): 包含全局变量的字典,该选项很少使用,采用默认值 global
- locals (optional): 包含局部变量的字典,内部标准实现未用到该变量,采用默认值 - local
- fromlist (Optional): 被导入的 submodule 名称
- level (Optional): 导入路径选项,Python 2 中默认为 -1,表示同时支持 absolute import 和 relative import 。Python 3 中默认为 0,表示仅支持 absolute import 。如果大于 0,则表示相对导入的父目录的级数,即 1 类似于 '.',2 类似于 '..' 。
>>> os = __import__('os')>>> os.getcwd'/home/wangbm'如果要实现
import xx as yy
的效果,只要修改左值即可如下示例,等价于import os as myos
:>>> myos = __import__('os')>>> myos.getcwd'/home/wangbm'
使用 importlibimportlib 是 Python 中的一个标准库,importlib 能提供的功能非常全面 。
它的简单示例:
>>> import importlib>>> myos=importlib.import_module("os")>>> myos.getcwd'/home/wangbm'如果要实现
import xx as yy
效果,可以这样>>> import importlib>>>>>> myos = importlib.import_module("os")>>> myos.getcwd'/home/wangbm' 使用 imp
imp
模块提供了一些 import 语句内部实现的接口 。例如模块查找(find_module)、模块加载(load_module)等等(模块的导入过程会包含模块查找、加载、缓存等步骤) 。可以用该模块来简单实现内建的__import__
函数功能:>>> import imp>>> file, pathname, desc = imp.find_module('os')>>> myos = imp.load_module('sep', file, pathname, desc)>>> myos<module 'sep' from '/usr/lib64/python2.7/os.pyc'>>>> myos.getcwd'/home/wangbm'从 python 3 开始,内建的 reload 函数被移到了 imp 模块中 。而从 Python 3.4 开始,imp 模块被否决,不再建议使用,其包含的功能被移到了 importlib 模块下 。即从 Python 3.4 开始,importlib 模块是之前 imp 模块和 importlib 模块的合集 。使用 execfile在 Python 2 中有一个 execfile 函数,利用它可以用来执行一个文件 。
语法如下:
execfile(filename[, globals[, locals]])参数有这么几个:
- filename:文件名 。
- globals:变量作用域,全局命名空间,如果被提供,则必须是一个字典对象 。
- locals:变量作用域,局部命名空间,如果被提供,可以是任何映射对象 。
使用 exec
execfile
只能在 Python2 中使用,Python 3.x 里已经删除了这个函数 。但是原理值得借鉴,你可以使用 open … read 读取文件内容,然后再用 exec 去执行模块 。
示例如下:
>>> with open("/usr/lib64/python2.7/os.py", "r") as f:... exec(f.read)...>>> getcwd'/home/wangbm' import_from_github_com有一个包叫做import_from_github_com,从名字上很容易得知,它是一个可以从 github 下载安装并导入的包 。为了使用它,你需要做的就是按照如下命令使用pip 先安装它 。$ python3 -m pip install import_from_github_com这个包使用了PEP 302中新的引入钩子,允许你可以从github上引入包 。这个包实际做的就是安装这个包并将它添加到本地 。你需要 Python 3.2 或者更高的版本,并且 git 和 pip 都已经安装才能使用这个包 。
推荐阅读
- Python自动化 页面加载速度太慢,如何提升测试效率?
- 5个有趣的Python库
- 淘宝店铺分销怎么操作 现在淘宝怎么做分销
- 淘宝直通车图和主图的区别 淘宝直通车测图操作步骤
- 360安全路由5G 通过多终端查看USB存储设备的操作方法
- Python中的多处理与多线程:新手简介
- 别在Python中使用“+”来连接字符串了,还有更好用的方法
- 常用Linux发行版操作系统大盘点
- 十一种光纤网络通讯传输方案
- 开网店第一步怎么操作 网上开店的基本流程要点