wxPython GUI被enthought杀死了

时间:2014-04-29 21:53:20

标签: python wxpython enthought canopy

我正在编写一个wxPython GUI。对于某些功能,这需要我使用python的Enthought发行版,但是当我升级到Canopy时它完全打破了我的GUI。当我打开某个窗口时,一切都冻结了,我不得不强行退出。我没有得到任何类型的错误消息或追溯,只是冻结。

我正在使用64位Canopy,版本1.4.0.1938和wxPython 2.9.2.4。

我正在寻找两种建议中的任何一种。 1.在这种情况下,什么是好的调试协议? 2.如何让wxPython和Canopy发挥得更好?

我非常感谢任何建议。我很乐意提供任何可能有用的代码,但我怀疑这并不是特别针对我的代码。

编辑: 我特别需要Enthought发行版,因为我的GUI建立在使用EPD提供的一些数据分析和绘图的旧代码之上。该GUI实际上包含并简化了几个旧的GUI,用于分析古地磁数据。

2 个答案:

答案 0 :(得分:1)

这个问题标题不准确,您的问题和您自己的答案都不准确且不完整。关于证据,来自your comments on the Enthought knowledge base,你的问题是双重的:

1)你想在OSX上的64位Python中使用WXPython 2.8。这是技术上不可能的基础,因为WxPython 2.8使用的是Carbon OSX图形,OSX 64位程序不支持这种图形。

2)如果失败了,你希望你的程序在WxPython 2.9中不加修改地运行,但显然你没有采取任何措施将它迁移到WxPython 2.9。请参阅http://wxpython.org/migrationguide.php

答案 1 :(得分:0)

(2014年5月6日编辑)

我的临时解决方案是安装32位版本的Canopy,然后使用软件包管理器安装旧版本的wxPython(2.8.10.1)。这暂时起作用,直到我能够找到错误的实际原因。

https://support.enthought.com/entries/22601196-wxPython?page=1#post_22146884

真正的问题确实证明是wxPython的版本。

具体问题是调用ShowModal()而不是简单地显示GUI的主窗口的Show(),这显然在wxPython 2.8中有效但在2.9中导致冻结。现在,代码可以使用64位Canopy。感谢Jonathan March指出我正确的方向。