22

我现在已经用 python 鬼混了大约一个月,有些事情困扰着我。我使用简洁的 Spyder IDE 附带的 python(x,y) 工具包。我的问题涉及 Spyder 的 UMD(用户模块删除器)。

我在互联网上找到了这个 图形模块,它可以帮助人们在 python 脚本中做一些简单的图形工作(据我所知)。

这不像我被卡住了,但是当我执行以下代码时:

import pylab as p
import graphics as g

window = g.GraphWin("tryout", 600, 600)
window.close()
print p.sqrt(4)

输出是:

>>>runfile(r'C:\some\folders\tryout.py', wdir=r'C:\some\folders')
>>>UMD has deleted: graphics
>>>2.0

第 1 行显然没问题,第 3 行也是如此,但我没有得到第 2 行。此外,被激怒的窗口在屏幕上闪烁,应该如此。第 2 行似乎没有造成任何伤害,我可以完美地重新运行文件多次,但我想知道它来自哪里。

AFAIK UMD 强制解释器在每次运行脚本时重新加载模块。显示的消息是否意味着“它”已经删除了对模块的引用,因为它不再使用,或者是别的什么?或者这是否意味着有问题,我以后应该添加更多代码会“伤害”我的代码吗?

注意:第一个问题,所以请评论它的废话,以帮助我提高我的提问技巧。

编辑:我尝试在测试线周围移动print p.sqrt(4),发现我把它放在哪里并不重要。如果它是导入模块后的第一行,它仍然会在显示 sqrt(4) 之前引发消息

4

1 回答 1

44

简短的回答:

也许删除不是您提到的消息中最好的词。它应该被重新加载,这正是 UMD 真正在做的事情,因为它不那么令人困惑。我将在我们的问题跟踪器中为此填写一个问题。

长答案:

UMD 不仅会重新加载您的脚本,还会重新加载它所依赖的所有本地模块。本地是指 Python 安装之外的模块,并且您拥有写入权限。

这个想法是在你的脚本旁边,也许你已经开发了一个辅助函数库来配合它。因此,您很可能也想重新加载该库,以便在运行时反映对它的任何更改。

我知道这不是你的情况,所以如果你想删除该消息,你可以去:

工具>首选项>控制台>高级设置>用户模块删除器

并停用该选项

显示重新加载的模块列表

于 2012-12-15T15:51:38.310 回答