问题标签 [python-module]

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 投票
8 回答
53595 浏览

python - 防止 Python 缓存导入的模块

在使用 IPython 在 Python 中开发一个大型项目(拆分为多个文件和文件夹)时,我遇到了缓存导入模块的麻烦。

问题是指令import module只读取该模块一次,即使该模块已更改!所以每次我更改包中的某些内容时,我都必须退出并重新启动 IPython。痛苦。

有没有办法正确强制重新加载某些模块?或者,更好的是,以某种方式阻止 Python 缓存它们?

我尝试了几种方法,但都没有奏效。特别是我遇到了非常非常奇怪的错误,例如某些模块或变量神秘地等于None...

我发现的唯一明智的资源是Reloading Python modules,来自 pyunit,但我没有检查它。我想要那样的东西。

一个不错的选择是让 IPython 重新启动,或者以某种方式重新启动 Python 解释器。

那么,如果你用 Python 开发,你找到了什么样的解决方案来解决这个问题呢?

编辑

说清楚:显然,我知道一些旧变量取决于模块的先前状态可能会保留。那个我能接受。为什么在 Python 中强制重新加载模块而不发生各种奇怪的错误如此困难?

更具体地说,如果我将整个模块放在一个文件中module.py,则以下内容可以正常工作:

这段代码工作得很好,我可以在几个月内不退出 IPython 的情况下进行开发。

但是,每当我的模块由几个子模块组成时,地狱就会崩溃:

为什么无论我将模块放在一个大文件中还是在多个子模块中,Python 会有如此不同?为什么这种方法不起作用?

0 投票
2 回答
741 浏览

python - Python:我的流程中导入了哪些模块?

如何获取已导入流程的模块列表?

0 投票
1 回答
1881 浏览

python - 从 C API 在 Python 模块中定义全局变量

我正在使用 C API 为 Python 开发一个模块。如何创建一个被 Python 视为全局的变量?

例如,如果我的模块是module,我想创建一个变量g来完成这项工作:

尤其g是整数。

Alex Martelli 的解决方案

0 投票
1 回答
732 浏览

python - 重新编译 Python 以修复交互模式下的箭头键问题

我正在使用 python 2.6(与 CentOS 所需的 Python2.4.3 一起安装)并且我遇到了箭头键和退格键等问题。

我从源代码编译,我想解决方案是在安装 readline-devel 后重新编译,如下所述:

在 python shell 中按箭头键时看到转义字符

问题是,我安装了很多模块,担心会坏掉。能够在不破坏现有模块的情况下重新编译是否正常。

谢谢

0 投票
2 回答
2345 浏览

python - 让 Python 的 nltk.wordnet 模块为 Jython 工作

我已经阅读了 Jython 的常见问题解答和这篇文章Jython 和 python 模块,但我不确定如何确定模块是纯粹用 C 还是 Python 编写的。

这里提到了我面临的问题http://old.nabble.com/using-NLTK-in-Jython-td28520926.html

做过这件事的任何人都可以对此有所了解吗?我是 Jython 的新手。

谢谢,

0 投票
4 回答
1551 浏览

python - 如何在 Python 中使用同名的命名参数和全局变量?

来自模块的示例代码:

使用同名至少有两个原因:教育(学习如何使用本地/全局)和模块中的使用。

假设此代码是您模块的一部分:mymodule并且您想要执行以下操作:

正如您可以想象的那样,这个例子被简化了,想象somevar参数是许多可选参数之一,并且 myfunc 在许多地方被调用。

0 投票
1 回答
1017 浏览

python - 使用内置 type(,,) 函数创建动态模块

我正在尝试使用该type(,,)函数来动态构建模块。.tex该模块创建表示模板的类,我需要为特定文件夹中的每个文件创建一个新类。例如,如果我有一个a4-page-template.tex文件,我需要创建一个名为A4PageTemplate.

我可以使用 type 语句轻松地创建类型;我到目前为止的样子是这样的;

注意倒数第二行创建了类型,它后面的 print 语句表明已经为每个模板创建了一个类型;

但是,当我使用模块时,我无法使用类型;如果我写这个消费者脚本;

我收到此错误;

你能想出一种方法让我将我创建的类型添加到模块中,使其成为模块的一流部分吗?

0 投票
1 回答
135 浏览

python - 模块中的 Python 类没有加载到一台计算机上,而是加载到另一台计算机上

所以我有两个文件:文件 1 中有这个方法:

文件 2 有一个类“someClass”和一个类“someOtherClass”。话虽如此。当我在我的计算机上运行我的代码时,它工作得很好,它可以满足我的期望。当我在我的朋友计算机上运行此代码时,它是具有相同 python 版本 2.5.4 的相同版本的 windows 7,并且使用相同的代码(在两者的拇指驱动器上)它会收到错误“模块不包含 someClass”

我希望这对我想说的话有意义。它与工作相关,因此代码片段不会大声。这让我非常困惑为什么会这样。我什至尝试“从 ModuleB 导入 someClass”来查看 someClass 是否可以工作,但它仍然说 someClass 不在 moduleB 中,而 someCLass 肯定在 moduleB 中......

任何想法将不胜感激!

0 投票
5 回答
468 浏览

python - 使用 C 模块扩展 python

所以我有一个 C 程序来连接 i2c 设备。我需要从 python 连接到该设备。我只是想知道是否值得将程序移植到 python 模块中,或者移植所涉及的工作量是否不会超过仅使用子进程执行程序。我知道我确信每个应用程序都不同,但我想知道是否值得我花时间学习 python C 扩展和移植这个程序。

更新:我可以完全访问 C 和 python 的源代码。但是在 python 方面已经完成了大量的工作,如果这很重要,我想尽可能减少对它的更改。而且我还想尽量减少必须对 C 进行的更改。这是可行的,但我没有编写它,它涉及到很多我不想重做的地址。

0 投票
4 回答
5884 浏览

python - 在 Python 中映射模块导入以便于重构

我有一堆 Python 模块要清理、重组和重构(有一些重复的代码,一些未使用的代码......),我想知道是否有工具可以绘制哪个模块使用哪个其他模块的地图.

理想情况下,我想要这样的地图:

...这样我就可以知道我可以首先开始移动哪些文件(file_utils.py,db_access.py),我的 main.py 没有使用哪些文件,因此可以删除等等。(我实际上正在工作大约 60 个模块)

编写一个执行此操作的脚本可能不会复杂(尽管 import 有不同的语法要处理),但我也希望我不是第一个想要这样做的人(如果有人做了一个工具,它可能包括其他简洁的功能,例如告诉我哪些类和函数可能没有使用)。

你知道任何帮助代码重组的工具(甚至是简单的脚本)吗?

你知道我正在尝试做的更准确的术语吗?代码重组?