Não é possível importar o wx mesmo depois de instalar o python-wxgtk2.8

2

Estou executando o Linux Ubuntu 14.04 LTS e estou tentando instalar o wxPython para que eu possa desenvolver GUIs em python.

Eu tenho o Python 2.7 e 3 instalado, mas o 2.7 é o padrão.

Eu instalei o wxPython como recomendado em seu site fazendo:

apt-get install python-wxgtk2.8

Ele disse que tinha instalado ok, mas quando eu vou para python, tanto 2.7 quanto 3.0, e eu importo a biblioteca ( import wx ) eu recebo o erro:

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

Resultados da execução de apt-cache policy python-wxgtk2.8 e 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

Eu verifiquei /usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/__init__.py . Eu tenho o arquivo lá, como você pode ver abaixo. Você pode ver com o que eu retornei quando executei 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'

Alguém sabe por que não funciona?

    
por Braiam 08.02.2015 / 14:22

2 respostas

1

Após uma conversa com o usuário no bate-papo (a partir do link ) Ficou claro que ele tinha duas versões do Python 2.7 instaladas. Um deles, o 2.7.6, era a versão do sistema (pacote binário do Ubuntu), o outro (2.7.5) era uma instalação local, em /usr/local .

Seu python estava pegando o 2.7.5, enquanto ipython e Idle estavam pegando 2.7.6. Desde que o pacote wxpython foi instalado a partir de um pacote binário. o interpretador python não pôde vê-lo. Não está claro por que ipython viu um e python viu o outro. Talvez python também fosse uma instalação local.

O cartaz não tem certeza do que fazer neste momento e é difícil aconselhá-lo. O natural seria remover a instalação local, mas isso exigiria saber como a instalação foi feita, quais pacotes foram instalados e se ele tem alguma coisa importante dependendo disso.

    
por 08.02.2015 / 14:44
0

Existem três razões possíveis:

  1. O pacote no Ubuntu está quebrado ou desconfigurado. Primeiro é improvável, seria um relatório de erros em algum lugar, e o segundo é falso, pois o dpkg reporta ii para pacotes instalados.
  2. Você está usando um shell python interativo que foi aberto antes da instalação do módulo. Este é o motivo mais provável. Basta fechar o shell e abri-lo novamente, deve funcionar.
  3. Você não está usando o binário python do sistema, isso inclui instalações pip, virtualenv ou manuais da origem.
por 08.02.2015 / 15:03

Tags