【问题标题】:How to use wxPython for Python 3?如何在 Python 3 中使用 wxPython?
【发布时间】:2014-12-02 18:24:21
【问题描述】:

我安装了wxPython 3.0.1.1,但我无法使用Python 3.4.1import wx。我收到以下错误:

Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'wx'

不过,如果我使用Python 2.7(我的OS X 10.9 中的默认安装),我可以import wx

Python 2.7.5 (default, Mar  9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>>

如何将 wxPython 用于 Python 3,特别是 Python 3.4.1?

【问题讨论】:

  • 也许你需要手动将模块的位置添加到你的sys.pathsys.path.insert("/location/of/wx")这里有更详细的描述:stackoverflow.com/questions/279237/…
  • @jotrocken 我怎样才能做到永久有效?
  • 不过,这只是一种解决方法。所以我不会将其发布为答案。如果您需要清洁溶液,请咨询包装的经销商。安装它应该将包放在正确的位置或正确地扩展路径。
  • @jotrocken 谢谢,问题是我不知道为 python 3 安装 wx 的正确位置。你知道吗?

标签: python macos python-3.x wxpython


【解决方案1】:

在解释器中检查您的 sys.path :

import sys
sys.path

如果您没有指向正确目录的正确链接,它将无法正常工作。

另外,检查你的 python 目录中的 Lib/site-packages,以确保 wx 正确安装在你的 python 3 上。(应该有一个以“wx-3.0”开头的目录)

【讨论】:

  • 我不知道正确目录的正确链接是什么。
  • 你知道你的 Python 目录吗?检查该目录,进入 Lib,然后进入站点包。应该有一个以“wx-3.0”开头的目录。那就是你要找的那个。它在你的 sys.path 中吗?
【解决方案2】:

您的机器上安装了两个不同的 python(3.4.1 和 2.7.5)。不要期望能够使用安装在一个 python 中的一个包(wxPython 3.0.1.1 at python 2.7.5)自动在另一个 python 中可用。

另外 wxPython(经典)不适用于 Python 3。您需要 wxPython Phoenix 才能做到这一点。

编辑:现在推荐的方式(@RobinDunn)安装wxPython(适用于 2.7 和 3 的 Phoenix 品种,now hosted on PyPI)正在做:

pip install wxPython

如果您已经安装了开发者版本,只需事先执行以下操作:

pip uninstall wxPython_Phoenix

您可以尝试在 Python 3.4.1 中安装 the wxPython Phoenix snapshots 之一。但是请注意,Phoenix 并非 1000% 与经典代码兼容,您在重用经典代码时可能会遇到一个或另一个问题(but transitioning its doable 值得一试)。

您可以在以下链接中的以下 wxPython wiki 中找到完整的解释/说明:

Installing wxPython-Phoenix using pip

有几个重点:

  • pip/setuptool 足够新 (> 6.x.x/> 12.x.x)

  • 构建是“非官方的”,因此pip 拒绝安装它:基本上你需要在使用 pip 安装时添加--pre

  • 您放弃 SSL 验证 --trusted-host wxpython.org(在 https 现在可以正常工作的现代版本中不再需要)。

Windows 机器的完整命令:

C:\python27\scripts\pip.exe install --upgrade --pre -f https://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix

请注意,这将为 Python 2.7 安装 wxPython Phoenix。

【讨论】:

  • 为了向@nepix32 的回答添加更多内容,Phoenix 的核心小部件已移植,但并非所有自定义小部件都已移植。如果你想使用 wxPython 的核心功能,那么 Phoenix 应该适合你。
  • @MikeDriscoll 你能给我关于 Phoenix 开发状态的任何参考吗?
  • 当然。您可以查看wiki.wxpython.org/ProjectPhoenix。我还建议查看 wxPython-dev Google 组。
  • 此外,PyPI 上现在有 Phoenix 的构建,所以一个简单的 pip install wxPython 就可以了。有适用于 Windows 和 OSX 的二进制文件,pip 将尝试在其他平台上从源代码构建。当新的提交签入到 git 时,快照文件夹仍用于最多每日构建,但 PyPI 版本将更加稳定和经过测试。
【解决方案3】:

看起来,wxPython 还没有完全移植到 Python 3,尽管版本号可能暗示了这一点。这就是为什么没有将 wx 模块添加到 Python 3 的 sys.path 的原因。

您可以选择从 Python 2.7 开始使用 wxPython,也可以查看以下 SO 条目:Still no wxPython for Python 3 (or 3.3) yet? 这是@nepix32 建议的。

或者,使用另一个适用于 Python 3 的 GUI 库。这里是 list

【讨论】:

  • wxPython 3.x 与 Python 的命名约定无关。它遵循 wxWidgets 版本编号方案。此外,wxPython 的 Phoenix 端口确实支持 Python 3,但目前还不是一个完整的端口。
【解决方案4】:

要在 Python 3.4x 中使用 wxPython,您需要使用 wxPython Phoenix - 正如其他人所指出的那样。要安装它,您可以:

pip install -U --pre -f http://wxpython.org/Phoenix/snapshot-builds/ wxPython_Phoenix 

注意最后一个'/'和wxPython_Phoenix后面的空格

【讨论】:

  • 如果您使用http 版本而不是https 版本,则会收到警告。
  • 给出错误:没有为 wxPython_Phoenix 找到匹配的分布
【解决方案5】:

也许之前给出的解决方案之前有效。但今天(2017 年 6 月 1 日)对我有用的是:

pip install - U - - pre - f https://wxpython.org/Phoenix/snapshot-builds/ wxPython

请务必检查 Readme.txt 是否有这个...

【讨论】:

    猜你喜欢
    • 2010-10-17
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多