【问题标题】:wxPython GUI killed by enthoughtwxPython GUI 被 enthought 杀死
【发布时间】:2014-04-29 21:53:20
【问题描述】:

我正在编写一个 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。

【问题讨论】:

  • 这不是为了解决您的问题,但您能详细说明一下“某些功能需要我使用 Enthought”吗?
  • 为了调试,我会开始将打印语句放入(喘气!)以查看代码在挂起之前能走多远。然后,您可以隔离问题并尝试在较小的模型中重现它。

标签: python wxpython enthought canopy


【解决方案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。

【讨论】:

  • 再次感谢您的回复。在阅读迁移指南时,我找不到任何似乎会影响我的代码的东西。我目前正在尝试让 wxpython 2.9 与非 Enthought python 一起运行,但不幸的是
  • (抱歉,在错误的时间按 Enter 键)。 wxPython.org 下载损坏,无法打开包。非常感谢您为我指明正确方向的帮助。
  • 我建议尝试一口大小的视觉组件,以帮助您缩小在 2.9 中哪些是失败的。出于诊断目的,您还可以考虑在 Fusion 中的 Windows 或 Ubuntu VM 中运行您的应用程序,因为您可以在 64 位 Canopy 或其他 64 位 python 中运行 WxPython 2.8。
【解决方案2】:

(2014 年 5 月 6 日编辑)

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多