在ubuntu上为python2和3安装wxpython

时间:2017-11-28 08:59:01

标签: python-3.x python-2.7 ubuntu-16.04 wxpython-phoenix

我正在运行Ubuntu 16并且同时拥有python 2和3.我已经下载了wxpython并且它可以使用python2解释器而不是3.我得到了

Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> 

Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux
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 3需要做什么?

1 个答案:

答案 0 :(得分:1)

类似的情况出现在Fedora 25上,我能够解决这个问题。您的里程可能因Ubuntu而异。

首先请注意,wxPython有两个主要版本,我们称之为wx3和wx4。您可以通过import wx; print(wx.version())识别正在运行的版本。 Fedora 25上的版本字符串读取'3.0.2.0 gtk3 (classic)',即wx3的品牌。在sourceforge上,这些版本被称为'wxPython'和'wxPython4',而wxpython.org调用wx4'phoenix'。

检查wx3的源代码,你会注意到wx3的语法与python3不兼容。相反,wx4兼容python2.7和python3。

wx4似乎在Fedora 25上不可用,因此python3无法运行任何开箱即用的wx。 Ubuntu可能有也可能没有相同的问题。

以下是我在python3虚拟环境中安装wx4的方法:

pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/fedora-26 wxPython

我认为你问题的答案是

pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04 wxPython    

如果您需要将(py2,wx3)应用程序移植到python3,您最好创建一个中间步骤:(py2,wx3) - &gt; (py2,wx4) - &gt; (py3,wx4),注意到(py3,wx3)是不可能的。

创建(py2,wx4)环境对我来说比较麻烦,因为上面的pip install命令在使用pip2运行时无法找到头文件。

最终为我工作的是下载4.0.0b2来源https://pypi.python.org/packages/bc/6f/f7bb525517557e1c596bf22ef3f242b87afaeab57c9ad460cb94b3b0714e/wxPython-4.0.0b2.tar.gz#md5=2e3716205da8f52d8039095d14534bf7

并按照构建说明https://github.com/wxWidgets/Phoenix/blob/master/README.rst进行操作,我只使用构建命令python build.py dox etg --nodoc sip build

构建之后,你需要告诉你的python2在哪里找到wx4库。我最终通过创建virtualenv并创建一个符号链接来实现这一点:

/home/user/venv/lib/python2.7/site-packages/wx -> /home/user/downloads/wxPython/wxPython-4.0.0b2/wx

后一个目录包含了构建的结果。