问题标签 [python-importlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
17407 浏览

python - 不推荐使用 imp 模块以支持 importlib

我在我的代码中使用熊猫,在熊猫中他们使用 imp 结节。现在我收到以下错误/警告

现在我做了一些搜索,发现 imp 模块正在被 importlib 模块取代。我更新了熊猫,但没有用。我似乎不太可能需要更改 Panda 的包代码。

有什么想法/修复吗?

0 投票
1 回答
20 浏览

python - Python:显示旧信息的导入文件

当然,这并不像我想象的那么复杂。我有一个存储用户凭据的文件,我们将其称为logins.py. 我的主脚本app.py将新帐户详细信息写入logins.py列表userkeyspasskeys. 要将新信息附加到凭证文件必须在写入新信息之前app.py导入。logins.py问题是当我这样做时,旧信息被写入文件 - 我前段时间删除的列表中的项目。幽灵般的。这是我的一些代码:

如果我输入一个用户aaa密钥和一个密码bbb我得到

12345 和 67890 是我在很多个月前删除的旧用户密钥和密码,它们不断回来。importlib.reload没什么区别。我错过了什么?

0 投票
2 回答
9780 浏览

python - from django.utils.importlib import import_module ImportError: No module named importlib

我是 Django 的新手。我有一个 Django 休息项目。当我运行它时,错误显示为

我尝试使用命令安装 importlib

然后它显示

那么我如何安装 importlib 包?

0 投票
1 回答
94 浏览

python - 模块 `builtin` 的 `__import__` 属性的默认绑定是什么?

简而言之,来自 Python

自定义进口商

Python 提供的一个高级的、很少需要的功能是能够更改部分或全部 import 和 from 语句的语义。

重新绑定 __import__

__import__ 您可以将模块的属性 重新绑定 builtin 到您自己的自定义导入器函数——例如,使用第 174 页“Python 内置函数”中所示的通用内置包装技术。

  1. 在“您可以重新绑定模块的 __import__ 属性”中 builtin,“模块 ”应该改为builtin“模块 ”吗?builtins

  2. __import__ 模块的属性 builtin”是否默认绑定importlib.__import__功能?或者“模块 builtin”是否提供绑定到其 __import__ 属性的默认实现?

0 投票
1 回答
152 浏览

python - `import` 语句和 `builtin.__import__()` 函数是否都默认基于 `importlib.__import()` 函数实现?

来自https://docs.python.org/3/library/importlib.html

importlib包装的目的有两个。

一种是 在 Python 源代码中提供语句实现(因此,通过扩展, 函数) 。这提供了一个可移植到任何 Python 解释器的实现。这也提供了一种比用 Python 以外的编程语言实现的实现更容易理解的实现。import__import__()import

第二,要实现的组件import在此包中公开,使用户更容易创建自己的自定义对象(通常称为导入器)以参与导入过程。

是不是说import语句和builtin.__import__()函数默认都是基于importlib.__import()函数实现的?

但是https://stackoverflow.com/a/44655619/156458暗示 默认情况下builtins.__import__没有实现importlib.__import__

https://docs.python.org/3/library/functions.html# import表示 该语句buitlins.__import__调用了该函数。import所以如果默认builtins.__import__不基于实现importlib.__import__,该import语句也不会基于importlib.__import__默认实现。

0 投票
2 回答
442 浏览

python - 如何在 Python 3 中执行文件并提供挂钩导入?

我正在使用 Python 3 来模拟另一个工具提供的 Python 脚本接口。(在编写此工具的脚本时,您运行 Python 脚本,这可以import mytool访问脚本 API。)

我已经实现了这个工具公开的接口,并且想编写一个你可以调用的加载器,例如:

此加载器允许您在不实际安装该工具的情况下与该工具的某些部分功能进行交互。理想情况下,这应该允许我运行为该工具设计的现有脚本而无需修改。

run_mytool_script.py我期望的范围内:

  1. 初始化模拟脚本接口
  2. 准备导入钩子
  3. exec剧本dump_menu_items.py

但是,我不太清楚如何创建导入挂钩。我怎样才能安装一个钩子,以便我的模拟脚本界面像mytool脚本一样暴露出来import mytool

注意,模拟脚本接口必须在运行时初始化,所以安装一个名为的包mytool并不能解决问题。

0 投票
1 回答
1040 浏览

python - 从回溯顶部删除几行

我正在调用importlib.import_module("somemodulename")导入一些自定义的用户定义模块。此导入可能会失败。我想向用户提供有关失败原因的信息,因此我需要打印回溯,但它往往很长,充满了来自importlib模块的行。例如它是:

显然,大多数行对用户来说是不感兴趣的。我希望回溯看起来像这样:

但问题是我不能依赖从importlib包生成的行数(这是一个实现细节,可能会在未来的版本中更改,可能是平台或 Python 安装特定的),我想跳过,也不是数字自定义模块错误生成的行数(他可以自己导入一些其他模块,这可能会导致错误),我想保留。更复杂的是,用户还可以调用importlib模块函数,这在这种情况下很好,应该包含在回溯中。

换句话说,我需要importlib从回溯中删除所有第一块错误行。除了以某种“聪明”的方式解析回溯行之外的任何想法,我认为这将是一个依赖包中太多实现细节的黑客且非常脆弱的解决方案importlib

注意:我使用的是 Python 3.5+,解决方案应该与平台无关

0 投票
1 回答
12403 浏览

python - python importlib没有命名模块

我正在使用烧瓶并具有以下结构

在 routes.py 中,我试图在 Interview 模块中创建一个 Interview 类的实例,就像这样

我在这里收到一个错误,上面写着

有关 init 文件的一些信息:

让我知道了解这些文件的内容是否有帮助。

0 投票
10 回答
46363 浏览

python - 导入错误:Jupyter 笔记本中的 DLL 加载失败,但在 .py 文件中工作

我在 Anaconda 环境中安装了BreakoutDetection模块。当我尝试import breakout_detection在 jupyter notebook 中使用导入模块时,出现以下错误

我可以在 python shell 中导入相同的模块

我查看了系统路径 ( print sys.path) 以及 python shell 和 jupyter notebook。他们都是一样的。两者的可执行路径 ( print sys.executable) 也是相同的。

有人可以帮助我解决我应该采取的步骤来解决这个问题吗?谢谢!

0 投票
0 回答
71 浏览

python - 在 Python 3.x 中从模块重新加载导入的对象

我发现另一个帖子似乎解决了从给定模块导入单个对象的情况,例如:

但是,如果使用导入所有对象,那么重新加载所有对象的正确方法是什么*(假设这是在 jupyter 笔记本中完成的,如果这很重要)?:

根据我的发现,要使用的库是importlib. 根据他们的文档,他们说

解决此问题的一种方法是重新执行 from 语句,另一种方法是使用导入和限定名称 (module.name)。

两种方式都试过了。如果您尝试在 jupyter 笔记本中动态重新加载对象,则前一种方法不起作用。后者实际上并没有直接解决这个问题。