我正在运行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需要做什么?
答案 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
后一个目录包含了构建的结果。