私はLinux Ubuntu 14.04 LTSを実行しており、PythonでGUIを開発できるようにwxPythonをインストールしようとしています。
Python 2.7と3がインストールされていますが、デフォルトでは2.7がインストールされています。
Webサイトが推奨するように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
チャットでポスターと会話をした後(fromhttp://chat.stackexchange.com/transcript/message/19959589#19959589)明らかに、彼は2つのバージョンのPython 2.7をインストールしています。そのうちの1つである2.7.6はシステム(Ubuntuバイナリパッケージ)バージョンで、もう1つ(2.7.5)は/usr/local
。
彼はpython
2.7.5を選び、ipython
アイドルは2.7.6を選んだ。 wxpythonパッケージはバイナリパッケージからインストールされるためです。通訳者はpython
それを見ることができません。なぜipython
1つを見た後、もう1つpython
を見たのかはわかりません。たぶんpython
ローカルにインストールすることもできます。
ポスターは現時点で何をすべきかわからず、アドバイスをするのも難しいです。当然のことはローカルインストールを削除することですが、これを行うには、まずインストールがどのように行われたのか、どのパッケージがインストールされているのか、そして重要な依存関係があるのかを理解する必要があります。
答え2
3つの理由があります。
- Ubuntuのパッケージが破損しているか構成されていません。最初は可能性が低いです。おそらくどこかにバグレポートがあります。 2つ目は、dpkgがインストールされている
ii
パッケージを報告するため、間違っています。 - モジュールをインストールする前に、開いている対話型Pythonシェルを使用しています。これが最も可能性の高い理由です。シェルを閉じて再度開くと機能します。
- システムPythonバイナリを使用していません。これには、pip、virtualenv、またはソースからの手動インストールが含まれます。