如何在给定完整路径的情况下导入模块?

发布于 2022-03-22 23:30:04

给定完整路径,如何加载 Python 模块?

请注意,该文件可以位于文件系统中的任何位置,因为它是一个配置选项。

关注者
0
被浏览
57
1 个回答
  • 面试哥
    面试哥 2022-03-22
    为面试而生,有面试问题,就找面试哥。

    对于 Python 3.5+ 使用:

    import importlib.util
    spec = importlib.util.spec_from_file_location("module.name", "/path/to/file.py")
    foo = importlib.util.module_from_spec(spec)
    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,有等效的便利函数。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看