importlib软件包提供了可移植到任何Python解释器的Python源代码中import语句的实现。这也提供了比用Python以外的其他编程语言实现的实现更容易理解的实现。
该软件包还公开了实现导入的组件,使用户可以更轻松地创建自己的自定义对象(称为导入程序)以参与导入过程。
importlib软件包具有一个重要的函数,名为import_module()
此函数以编程方式导入模块。模块名称是功能的第一个参数。可选的第二个参数指定软件包名称(如果有)。
此功能使查找器的内部缓存无效。如果在程序运行时创建/安装了任何模块,则应调用此函数,以确保所有查找者都将注意到新模块的存在。
此功能将重新加载先前导入的模块。如果您已使用外部编辑器编辑了模块源文件,并且想在不离开Python解释器的情况下尝试新版本,则这将非常有用。
例:
创建两个名为module1.py和module2.py的Python脚本,其代码如下:
#module1 def main(): print ('module imported', __name__) return if __name__=='__main__': main()
现在,我们使用importlib软件包动态导入这些模块。
>>> import importlib >>> mod=importlib.import_module('module1') >>> mod.__name__ 'module1' >>> mod=importlib.import_module('module2') >>> mod.__name__ 'module2' >>> mod.main() module imported module2 >>>
importlib软件包包含以下子模块:
此模块包含导入使用的所有核心抽象基类。还提供了一些核心抽象基类的子类,以帮助实现核心ABC。
该模块利用Python的导入系统来提供对包内资源的访问。
该模块包含有助于导入查找和加载模块的各种对象。
该模块具有用于进口商的实用程序代码。它包含有助于构建进口商的各种对象。其中定义了以下重要功能。
此功能查找相对于指定软件包名称的模块规格。如果名称用于子模块(包含点),则将自动导入父模块。名称和包的工作方式与import_module()相同。
基于spec和spec.loader.create_module创建一个新模块。
import importlib.util def check_module(mod): spec = importlib.util.find_spec(mod) if spec is None: print('Module: {} not found'.format(mod)) return None else: print('Module: {} can be imported!'.format(mod)) return spec def import_module(spec): mod = importlib.util.module_from_spec(spec) spec.loader.exec_module(mod) return mod if __name__ == '__main__': spec = check_module('notamodule') spec = check_module('module1') if spec: mod = import_module(spec) mod.main()
Module: notamodule not found Module: module1 can be imported! module imported module1
本文向大家介绍Python实现将xml导入至excel,包括了Python实现将xml导入至excel的使用技巧和注意事项,需要的朋友参考一下 最近在使用Testlink时,发现导入的用例是xml格式,且没有合适的工具转成excel格式,xml使用excel打开显示的东西也太多,网上也有相关工具转成csv格式的,结果也不合人意。 那求人不如尔己,自己写一个吧 需要用到的模块有:xml.dom.mi
上面写着 我怎么才能修好这个?是否需要设置一个环境变量来将Python指向pyspark头/库/等?如果我的spark安装是/spark/,我需要包括哪些pyspark路径?或者pyspark程序只能从pyspark解释器运行吗?
之前我安装了pytorch,PIL,numpy。。。使用pip。之后我安装了python3。因此,ipython从python2切换到python3。我必须使用ipython2来启动python2内核。这些模块在ipython2中仍然可以很好地工作,但当我使用python、python2、python2.7运行python脚本时,它们都会引发以下问题: 没有名为PIL的模块(Numpy, torc
问题内容: 我很困惑。我正在关注以下教程(特别是6.4.2) http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer 我正在运行Python 2.7,PyGTK 2.24和GStreamer WinBuilds 10.7(主要安装程序和SDK)。 当我尝试编译程序时,出现以下错误: 追溯(最近一次通话最后一次):导入gst文
问题内容: 我正在尝试运行以下简单代码来检索SSL证书: 但我收到错误消息: 我知道我必须导入OpenSSL。但是我不知道怎么做?以及从哪里获得OpenSSL?我从https://pypi.python.org/pypi/pyOpenSSL下载了一个名为pyOpenSSL的模块, 其中包含两个文件夹:pyOpenSSL-0.15.1.dist- info和OpenSSL。当我尝试添加导入OpenS
问题内容: 我正在尝试编写一些使用Numpy的代码。但是,我无法导入它: 我尝试了这个问题的建议: 然后搜索在该路径中命名的文件: 但是什么都没发生。 所以… 还有其他通常安装Python模块的地方吗? 如果事实证明中心区域中未安装numpy,该如何在我的帐户中本地安装numpy? 问题答案: 你安装了吗? 在debian / ubuntu上: 在Windows上: 在其他系统上: