从指定路径动态导入模块
在Python中,导入模块通常是通过指定模块名称来实现的。但是,如果您需要从特定文件导入模块,无论其在文件系统中的位置如何?
解决方案:
动态导入基于其完整路径,您可以利用以下任何技术:
Python 3.5 (推荐):
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() # Access a class within the module
Python 3.3 和 3.4:
from importlib.machinery import SourceFileLoader foo = SourceFileLoader("module.name", "/path/to/file.py").load_module() foo.MyClass() # Access a class within the module
Python 2:
import imp foo = imp.load_source('module.name', '/path/to/file.py') foo.MyClass() # Access a class within the module
请注意,这些方法提供了导入已编译的 Python 文件和DLL 也是如此。
附加说明:
值得一提的是,当使用动态生成的模块或未安装在任何模块中的模块时,此方法特别有用。标准 Python 路径。
以上是如何从特定文件路径动态导入Python模块?的详细内容。更多信息请关注PHP中文网其他相关文章!