我已经和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:somefolderstryout.py', wdir=r'C:somefolders')
>>>UMD has deleted: graphics
>>>2.0
1号线显然还可以,3号线也可以,但我没接到2号线。此外,被激发的窗口会在屏幕内外闪烁,这是应该的。第2行似乎没有造成任何伤害,我可以完美地多次重新运行该文件,但我想知道它是从哪里混合而来的。
AFAIK UMD强制解释器在每次运行脚本时重新加载模块。显示的消息是否意味着"it"已经删除了对模块的引用,因为它不再使用,还是其他原因?或者这是否意味着出了问题,如果我以后添加更多,会不会"伤害"我的代码?
注意:第一个问题,所以请评论一下,帮助我提高提问技巧。
编辑:我试着在测试线print p.sqrt(4)
周围移动,发现把它放在哪里并不重要。如果它是导入模块后的第一行,它在显示sqrt(4)之前仍然会出现消息
简短回答:
也许删除不是你提到的信息中最好的词。它应该重新加载,这就是UMD真正在做的事情,因为它不那么令人困惑。我将在我们的问题跟踪器中为此填写一个问题。
长答案:
UMD不仅重新加载您的脚本,还重新加载它所依赖的所有本地模块。我所说的local指的是Python安装之外的模块,并且您有写入权限。
这个想法是,在你的脚本旁边,也许你已经开发了一个辅助函数库来配合它。所以你很可能也想重新加载这个库,这样对它的任何更改都会在运行时反映出来。
我知道这不是你的情况,所以如果你想删除该消息,你可以去:
工具 首选项>Console高级设置>用户模块删除程序
并停用选项
显示重新加载的模块列表