导入任意的Python源文件。(Python 3.3+)

9 浏览
0 Comments

导入任意的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源文件的正确方法是什么?

0