我正在运行 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.8
和dpkg -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,而ipython
Idle 则选择了 2.7.6。由于 wxpython 包是从二进制包安装的。口译员python
看不到它。目前还不清楚为什么ipython
看到一个,又python
看到另一个。也许python
也是本地安装。
发帖者此时不知道该怎么做,也很难给他提供建议。自然的做法是删除本地安装,但这需要首先了解安装是如何完成的,安装了哪些软件包,以及是否有任何重要的依赖项。
答案2
可能的原因有以下三个:
- Ubuntu 中的软件包已损坏或未配置。第一个不太可能,它可能是某个地方的错误报告,第二个是错误的,因为 dpkg 报告
ii
已安装的软件包。 - 您正在使用在安装模块之前打开的交互式 python shell。这是最有可能的原因。只需关闭外壳并再次打开它,它应该可以工作。
- 您没有使用系统 python 二进制文件,这包括 pip、virtualenv 或从源代码手动安装。