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

2023-11-26

如何在给定完整路径的情况下加载 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(使用前将#替换为@)

如何在给定完整路径的情况下动态导入模块? 的相关文章

  • 将 JSON 发布到 Python CGI

    我已经安装了 Apache2 并且 Python 可以工作 但我有一个问题 我有两页 一个是 Python 页面 另一个是带有 JQuery 的 Html 页面 有人可以告诉我如何让我的 ajax 帖子正常工作吗
  • 如果 Excel 文件是由程序创建的,Pandas read_excel 对于具有简单公式的单元格返回 nan [重复]

    这个问题在这里已经有答案了 I use pd read excel读取由以下命令创建的 excel 文件openpyxl并从一个网址下载 解析后的数据框将给出nan如果单元格值是公式 which formula is simply 100
  • scipy.optimize on pandas dataframe

    我试图搜索它 但结果很差 有人可以向我解释一下如何在 Pandas DataFrame 上执行 optimize minimize 以便最小化 DataFrame 中的类别和结果列之间的错误 考虑这个例子 import pandas as
  • Python 转换矩阵

    我有一个如下所示的列表 2 1 3 1 2 3 1 2 2 2 我想要的是一个转换矩阵 它向我显示如下序列 1 后跟 1 的频率是多少 1 后面跟着 2 的频率是多少 1 后跟 3 的频率是多少 2 后跟 1 的频率是多少 2 后跟 2 的
  • 如何使用一个模型中间层的输出作为另一个模型的输入?

    我训练一个模型A并尝试使用中间层的输出name layer x 作为模型的附加输入B 我尝试像 Keras 文档一样使用中间层的输出https keras io getting started faq how can i obtain th
  • 通过 python 中的另外两个修改数组[重复]

    这个问题在这里已经有答案了 假设我们有三个一维数组 A 长度为 5 B 长度相同 示例中为5 C 更长 比如长度为 100 C最初用零填充 A给出索引C应更改的元素 它们可能会重复 以及B给出应添加到初始零的值C 例如 如果A 1 3 3
  • App Engine NDB:如何访问属性的 verbose_name

    假设我有这个代码 class A ndb Model prop ndb StringProperty verbose name Something m A m prop a string value 当然 现在如果我打印 m prop 它会
  • 使用pathlib获取主目录

    翻看新的pathlib在 Python 3 4 中 我注意到没有任何简单的方法来获取用户的主目录 我能想到的获取用户主目录的唯一方法是使用旧的os path像这样的库 import pathlib from os import path p
  • 用 Python 绘制直方图

    我有两个列表 x 和 y x 包含字母表 A Z Y 包含它们在文件中的频率 我尝试研究如何在直方图中绘制这些值 但在理解如何绘制它方面没有成功 n bins patches plt hist x 26 normed 1 facecolor
  • 如何从hdfs读取文件[重复]

    这个问题在这里已经有答案了 我在 project1目录下的hadoop文件系统中有一个文本文件名mr txt 我需要编写 python 代码来读取文本文件的第一行 而不将 mr txt 文件下载到本地 但我无法从 hdfs 打开 mr tx
  • Django 多对多关系(类别)

    我的目标是向我的 Post 模型添加类别 我希望以后能够按不同类别 有时是多个类别 查询所有帖子 模型 py class Category models Model categories 1 red 2 blue 3 black title
  • ValueError:数据必须为正(boxcox scipy)

    我正在尝试将我的数据集转换为正态分布 0 8 298511e 03 1 3 055319e 01 2 6 938647e 02 3 2 904091e 02 4 7 422441e 02 5 6 074046e 02 6 9 265747e
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • 在请求中设置端口

    我正在尝试利用cgminer使用 Python 的 API 我对利用requests图书馆 我了解如何做基本的事情requests but cgminer想要更具体一点 我想缩小 import socket import json sock
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • 无法导入QUERY_TERMS

    我正在运行一个网站Python and Django Django filters 2 1 installed Django 2 1 installed 当我运行时 我收到以下错误 importError Could not import
  • Python 2.7 缩进错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • 如何展平解析树并存储在字符串中以进行进一步的字符串操作 python nltk

    我正在尝试从树结构中获取扁平树 如下所示 我想将整个树放在一个字符串中 就像没有检测到坏树错误一样 S NP SBJ NP DT The JJ high JJ seven day PP IN of NP DT the CD 400 NNS
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File

随机推荐

  • Hibernate 查询缓存 - 对于不在二级缓存中的对象 - 有风险吗?有用?不好的做法?

    与此相关question Premise 这些是我的假设 基于我的阅读 经验和理解 它们可能是错误的 如果是 请发表评论 我将编辑问题 查询缓存和二级缓存都很好 查询缓存缓存查询 参数的标识符结果 如果数据库发生更改 并且未反映到缓存中 则
  • 在预先分配的内存中创建对象

    我们可以使用placement new在预先分配的内存中创建一个对象 让我们考虑以下示例 char buf new char 1000 pre allocated buffer string p new buf MyObject place
  • 如何增加 Visual Studio 测试的超时?

    我正在为我正在编写的一些代码 在 Visual Studio 2012 中 进行相当大的测试套件 在大多数情况下 运行单元测试没什么大不了的 但我还包含了许多具有更多外部基础设施依赖性的集成测试 测试的数量 再加上重新设置测试之间的基础设施
  • MVC 4 下拉列表更改的回发

    我正在使用 MVC 4 并且布局中有一个菜单 我的菜单的一部分由一个下拉列表组成 用户可以在其中在可用的提供商之间进行选择 div class row div class col md 4 Html DropDownListFor x gt
  • 如何使用 Java 在 Spark SQL 中连接多个列以在 DataFrame 中进行过滤

    DataFrame a 包含列 x y z k DataFrame b 包含列 x y a a join b
  • 如何从 npm 脚本通过管道传输到 bash 别名?

    我的 bashrc 中有一个 Bunyan 的别名 alias bsh alias bsh bunyan o short 此行在 bash 中运行良好 coffee src index coffee bsh 但如果我把同样的东西放在 脚本
  • 使用 Cloudfront 预签名 S3 URL

    我想将我的预签名 URL 附加到 CloudFront URL 中以供使用 知道如何实现这一目标吗 Use an Amazon CloudFront 签名 URL而不是尝试将 Amazon S3 预签名 URL 与 CloudFront 结
  • R Markdown:无法访问通过 Conda/Anaconda 安装的 Bash 命令

    我正在探索一些生物信息学数据 并且喜欢尽可能使用 R 笔记本 即 Rmarkdown 现在 我需要使用命令行工具来分析 VCF 文件 并且我想通过 Rmarkdown 笔记本中的 Bash 代码块来完成此操作 问题是我想使用的命令是用con
  • 在 C# 中的父窗体中心显示子窗体

    我创建一个新表单并从父表单调用 如下所示 loginForm new SubLogin loginForm Show 我需要在父窗体的中心显示子窗体 因此 在子表单加载中我执行以下操作 Point p new Point this Pare
  • Nokogiri/Xpath 命名空间查询

    我正试图拉出来dc title使用 xpath 的元素 我可以使用以下代码提取元数据 doc lt
  • 如何测试特定控件是否具有焦点?

    我可以访问 2007 表单 我想测试特定控件 切换按钮 是否具有焦点 就像是 if gotfocus mytoggle then dosomething endif 或者也许像 if me mytoggle setfocus true th
  • 显示 Django 消息框架消息

    我一直在使用Django 消息传递框架在模板中向用户显示消息 我将它们输出到模板中 如下所示 ul for message in messages ul
  • C++ STL 中的正则表达式

    STL 中是否有任何经过测试且无需任何额外编译器选项即可工作的本机库 我尝试使用
  • 如何使用 STL 字符串和流读取/存储 unicode

    我需要修改我的程序以接受 Unicode 它可能来自任何 UTF 8 以及各种 UTF 16 和 UTF 32 编码 我对 Unicode 不太了解 尽管我读过 Joel Spolsky 的article和维基百科页面 现在我正在使用std
  • 如何将 .txt / .csv 文件转换为 ORC 格式

    对于某些要求我想转换文本文件 带分隔符 to ORC 优化行列 格式 由于我必须定期运行它 所以我想写一个java程序这样做 我不想使用 Hive 临时表解决方法 有人可以帮我做吗 以下是我尝试过的 ORCMapper java impor
  • 如何正确使用 print_r 或 var_dump?

    我在调试时经常使用以下代码片段 echo pre var dump var pre 我发现我通常会得到很好的可读输出 但有时我就是不这样做 我现在对这个例子特别恼火
  • 逗号运算符 , 的作用是什么?

    什么是 运算符在C中做什么 表达方式 expression1 expression2 First expression1被评估 那么expression2被评估 并且值expression2返回整个表达式
  • Python 捕获终止后的子进程输出

    我试图在引发 TimeoutExpired 异常时获取子进程输出 在 Windows 上 有任何想法吗 try proc subprocess run cmd timeout 3 except subprocess TimeoutExpir
  • 自定义 Eclipse 包

    我想打包 Eclipse 一些自定义插件 以供内部使用 该包装将包含 平台运行时二进制 win32 和 linux x86 gtk Mylyn 任务列表 Mylyn 聚焦用户界面 Mylyn 的 Mantis 连接器 我怎样才能生成这些定制
  • 如何在给定完整路径的情况下动态导入模块?

    如何在给定完整路径的情况下加载 Python 模块 请注意 该文件可以位于文件系统中用户具有访问权限的任何位置 See also How to import a module given its name as string 让我们MyCl