2014-10-08 216 views
9

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

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' 

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

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?

+0

也许你需要手动模块的位置添加到您的'SYS。路径: 'sys.path.insert(“/ location/of/wx”)' 这里是一个更详细的描述:http://stackoverflow.com/questions/279237/import-a-module-from-一个相对路径 – jotrocken 2014-10-08 07:27:34

+0

@jotrocken我怎么能这样做,它将永久? – Nick 2014-10-08 07:29:43

+0

http://stackoverflow.com/questions/3402168/permanently-add-a-directory-to-pythonpath – jotrocken 2014-10-08 07:31:24

回答

11

你有两个安装在您的机器上的不同蟒蛇(3.4.1和2.7.5)。不要指望能够使用一个安装在一个python中的软件包(在python 2.7.5上的wxPython 3.0.1.1)自动在另一个python中使用。

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

编辑:建议的方法(通过@RobinDunn)安装wxPython(凤凰品种,这将在2.7和3,now hosted on PyPI工作)现在只是做:

pip install wxPython 

如果你有开发商安装的版本,只是做了事前以下:

pip uninstall wxPython_Phoenix 

你可以尝试安装的the wxPython Phoenix snapshots一个在你的Python 3.4.1。但是,请注意,Phoenix不与经典版1000%兼容,重复使用经典代码(but transitioning its doable并且值得)可能会遇到这种或那种呃逆。

您可以在下面的wxPython维基在以下链接的完整说明/描述:

Installing wxPython-Phoenix using pip

有几个要点:

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

  • 该构建是“非官方”的,因此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 

注意,这将安装wxPython的凤凰为Python 2.7。

+0

为了给@ nepix32的答案增加一点点,凤凰的核心小部件被移植,但并非所有的定制小部件都是。如果你想使用wxPython的核心功能,那么Phoenix应该为你工作。 – 2014-10-08 13:04:46

+0

@MikeDriscoll你能否给我一些关于凤凰城发展状况的参考资料? – Nick 2014-10-10 11:47:28

+0

当然。你可以看看http://wiki.wxpython.org/ProjectPhoenix。我还建议通过wxPython-dev Google小组来查看。 – 2014-10-13 13:55:30

0

检查您的sys.path以解释:

import sys 
sys.path 

如果你没有正确的链接到正确的目录,它不会工作。

此外,检查库/站点包在你的Python目录,以确保WX正确安装在你的Python 3(应该开始与目录“WX-3.0”)

+0

我不知道什么是适当的链接到正确的目录。 – Nick 2014-10-08 07:51:09

+0

你知道你的Python目录吗? 检查该目录,进入Lib,然后进入站点包。应该有一个以“wx-3.0”开头的目录。 这就是你正在寻找的那个。它在你的sys.path中吗? – inirlan 2014-10-08 07:55:12

2

看起来,尽管版本号可能暗示wxPython尚未完全移植到Python 3。这就是为什么WX模块没有在这个SO进入加入到了Python 3的sys.path

您可以解决使用wxPython的在Python 2.7或看看:Still no wxPython for Python 3 (or 3.3) yet? 这是@ nepix32建议。

或者,使用另一个与Python 3一起使用的GUI库。这是一个list

+1

wxPython 3.x与Python的命名约定无关。它遵循wxWidgets版本编号方案。另外,wxPython的Phoenix端口确实支持Python 3,但目前它不是完整的端口。 – 2014-10-08 13:03:27

+0

感谢您的有用信息+1 – Nick 2014-10-08 14:38:25

7

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

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

注意在最后“/”和wxPython_Phoenix

+1

如果您使用'http'版本而不是'https',则会发出警告。 – JeromeJ 2016-08-02 14:13:29

0

也许给出的解决方案之前,早期的工作空间。但是,今天对我的工作(2017年6月1日)是:

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

务必查看readme.txt这一个...