如何在给定完整路径的情况下加载 Python 模块?
请注意,该文件可以位于文件系统中用户具有访问权限的任何位置。
See also: How to import a module given its name as string?
让我们MyClass
in module.name
模块定义于/path/to/file.py
。下面是我们导入的方法MyClass
从这个模块
对于 Python 3.5+ 使用 (docs):
import importlib.util
import sys
spec = importlib.util.spec_from_file_location("module.name", "/path/to/file.py")
foo = importlib.util.module_from_spec(spec)
sys.modules["module.name"] = foo
spec.loader.exec_module(foo)
foo.MyClass()
对于 Python 3.3 和 3.4 使用:
from importlib.machinery import SourceFileLoader
foo = SourceFileLoader("module.name", "/path/to/file.py").load_module()
foo.MyClass()
(尽管这在 Python 3.4 中已被弃用。)
对于 Python 2 使用:
import imp
foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()
对于已编译的 Python 文件和 DLL,也有等效的便利函数。
也可以看看http://bugs.python.org/issue21436.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)