导入任意的Python源文件。(Python 3.3+)
- 论坛
- 导入任意的Python源文件。(Python 3.3+)
9 浏览
导入任意的Python源文件。(Python 3.3+)
在Python 3.3+中,如何导入任意Python源文件(文件名可以包含任何字符,并且不总是以.py
结尾)?
我使用了imp.load_module
,如下所示:
>>> import imp >>> path = '/tmp/a-b.txt' >>> with open(path, 'U') as f: ... mod = imp.load_module('a_b', f, path, ('.py', 'U', imp.PY_SOURCE)) ... >>> mod
这在Python 3.3中仍然有效,但根据imp.load_module
文档,它已被弃用:
从版本3.3开始弃用:不需要使用加载器来加载模块,find_module()也已被弃用。
并且imp
模块的文档建议使用importlib
:
注意:新程序应该使用importlib而不是此模块。
在Python 3.3+中,不使用已弃用的imp.load_module
函数,加载任意Python源文件的正确方法是什么?