Python Spyder-UMD已删除:模块

Python Spyder-UMD已删除:模块,python,graphics,spyder,pythonxy,Python,Graphics,Spyder,Pythonxy,现在我已经在python上鬼混了大约一个月,有什么事情困扰着我。 我使用python(x,y)工具包,它与整洁的Spyder IDE一起提供。 我的问题涉及Spyder的UMD(用户模块删除器) 我在互联网上找到了图形模块,它可以帮助人们在python脚本中完成一些简单的图形操作(据我所知) 这并不是说我被卡住了,而是当我执行以下代码时: import pylab as p import graphics as g window = g.GraphWin("tryout",

现在我已经在python上鬼混了大约一个月,有什么事情困扰着我。 我使用python(x,y)工具包,它与整洁的Spyder IDE一起提供。 我的问题涉及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强制解释器在每次运行脚本时重新加载模块。 显示的消息是否意味着“it”删除了对模块的引用,因为它不再使用,或者是其他原因?或者这是否意味着出现了问题,是否会“伤害”我的代码?我是否应该在以后添加更多

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


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

简短回答:

也许删除并不是你提到的信息中最好的词。它应该被重新加载,这是UMD真正做的,因为它不那么混乱。我将在我们的问题跟踪程序中为此填写一个问题

长答案:

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

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

我知道这不是你的情况,因此如果你想删除该邮件,可以转到:

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

并停用该选项


显示重新加载的模块列表

感谢您的澄清…=)很有用,例如,当使用Mayavi时,它会打印一个很长的列表,因为这个“显示重新加载的模块列表”更多的是用于调试,是否应该默认禁用它?我认为它不用于调试;它更多的是通知用户在下一次执行之前重新加载了哪些模块。在您的情况下,因为我猜您已经在本地安装了Mayavi,所以您可以停用该消息并将其添加到排除的模块列表中。这导致为ROS开发软件时出现问题。我相信UMD影响了ROS环境变量的路径,因为我可以运行代码一次,但不能再运行一次,因为找不到感兴趣的模块。停用的UMD阻止了这一恼人的事件。当答案以这种方式具有权威性时,这真是太棒了。几年后再看相同的指令,它被称为UMR,用于重载,而且更改是如此彻底,这也是非常巧妙的。对于较新版本的spyder,菜单顺序是工具>首选项>Python解释器>高级设置>用户模块重新加载程序(UMR)。