安装 python-wxgtk2.8 后仍无法导入 wx

安装 python-wxgtk2.8 后仍无法导入 wx

我正在运行 Linux Ubuntu 14.04 LTS,并尝试安装 wxPython,以便我可以在 python 上开发 GUI。

我安装了 python 2.7 和 3,但默认安装了 2.7。

我已经按照他们网站上的建议安装了 wxPython:

apt-get install python-wxgtk2.8

它说它已经安装好,但是当我进入 python,2.7 和 3.0,并且导入库 ( import wx) 时,我收到错误:

>>> import wx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named wx

运行结果apt-cache policy python-wxgtk2.8dpkg -l python-wxgtk2.8

kiancross@whb:/etc/apt$ apt-cache policy python-wxgtk2.8
python-wxgtk2.8:
  Installed: 2.8.12.1+dfsg-2ubuntu2
  Candidate: 2.8.12.1+dfsg-2ubuntu2
  Version table:
 *** 2.8.12.1+dfsg-2ubuntu2 0
        500 http://gb.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
        100 /var/lib/dpkg/status
kiancross@whb:/etc/apt$ also dpkg -l python-wxgtk2.8

kiancross@whb:/etc/apt$ dpkg -l python-wxgtk2.8
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                   Version          Architecture     Description
+++-======================-================-================-==================================================
ii  python-wxgtk2.8        2.8.12.1+dfsg-2u amd64            wxWidgets Cross-platform C++ GUI toolkit (wxPython

我检查了/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/__init__.py。我那里有该文件,如下所示。你可以看到我运行时返回的内容dpkg -S /usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/__init__.py

kiancross@whb:/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx$ ls -a
.            calendar.py    _core.py    glcanvas.py   __init__.py   py              __version__.pyc  _wizard.so
..           calendar.pyc   _core.pyc   glcanvas.pyc  __init__.pyc  richtext.py     webkit.py        xrc.py
animate.py   _calendar.so   _core_.so   _glcanvas.so  lib           richtext.pyc    webkit.pyc       xrc.pyc
animate.pyc  combo.py       _gdi.py     grid.py       media.py      _richtext.so    _webkit.so       _xrc.so
_animate.so  combo.pyc      _gdi.pyc    grid.pyc      media.pyc     stc.py          _windows.py
aui.py       _combo.so      _gdi_.so    _grid.so      _media.so     stc.pyc         _windows.pyc
aui.pyc      _controls.py   gizmos.py   html.py       _misc.py      _stc.so         _windows_.so
_aui.so      _controls.pyc  gizmos.pyc  html.pyc      _misc.pyc     tools           wizard.py
build        _controls_.so  _gizmos.so  _html.so      _misc_.so     __version__.py  wizard.pyc
kiancross@whb:/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx$ dpkg -S /usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/__init__.py
python-wxgtk2.8: /usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/__init__.py
kiancross@whb:/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx$ 

kiancross@whb:~$ ipython
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
Type "copyright", "credits" or "license" for more information.

IPython 1.2.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import wx

In [2]: wx.__file__
Out[2]: '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/__init__.pyc'

有谁知道为什么它不起作用?

答案1

在聊天中与发帖者对话后(从http://chat.stackexchange.com/transcript/message/19959589#19959589)很明显他安装了两个版本的 Python 2.7。其中一个2.7.6是系统(Ubuntu二进制包)版本,另一个(2.7.5)是本地安装,以/usr/local.

python选择了 2.7.5,而ipythonIdle 则选择了 2.7.6。由于 wxpython 包是从二进制包安装的。口译员python看不到它。目前还不清楚为什么ipython看到一个,又python看到另一个。也许python也是本地安装。

发帖者此时不知道该怎么做,也很难给他提供建议。自然的做法是删除本地安装,但这需要首先了解安装是如何完成的,安装了哪些软件包,以及是否有任何重要的依赖项。

答案2

可能的原因有以下三个:

  1. Ubuntu 中的软件包已损坏或未配置。第一个不太可能,它可能是某个地方的错误报告,第二个是错误的,因为 dpkg 报告ii已安装的软件包。
  2. 您正在使用在安装模块之前打开的交互式 python shell。这是最有可能的原因。只需关闭外壳并再次打开它,它应该可以工作。
  3. 您没有使用系统 python 二进制文件,这包括 pip、virtualenv 或从源代码手动安装。

相关内容