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

标签 python python-import python-module

如何根据完整路径加载 Python 模块?

请注意,该文件可以位于用户有权访问的文件系统中的任何位置。

最佳答案

对于 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 .

关于python - 如何在给定完整路径的情况下导入模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67631/

相关文章:

python - 如何在 Robot Framework 中比较两个字符串是否相等

使用 FFmpeg 将视频转换为图像序列的 python 脚本

python - 破解 python 的 import 语句

python - "No module named..."具有一定的项目结构

python - 从(或附近)具有相同名称的脚本导入库会引发 "AttributeError: module has no attribute"或 ImportError 或 NameError

python - 我应该导入模块和子模块吗

python - 关于lightFM,如何嵌入特征矩阵并向用户推荐新项目

python - 将有关节点的信息写入 Controller (本地)上的 CSV 文件

python - 错误 Python int 太大而无法转换为 C long 通过附加 rb 标签解决。为什么?

python - 简单利用 "import as"加载多场景数据?