pyedit - Variable no definida de importación al usar wxPython en pydev
pydev eclipse (6)
Algunas de las versiones más recientes de pydev (alrededor de enero de 2010) tienen dificultades para rastrear nombres importados. Probablemente no es nada
Si esto sigue ocurriendo, informe el error al aptana appcelerator , aunque sin duda ya lo saben.
Me sale este problema cuando trabajo con paquetes que acabo de descargar y, finalmente, los errores desaparecen. Mi problema más reciente fue después de descargar pygame (alrededor de enero de 2010) .
Editar
He enmendado mi respuesta anterior ya que la gente lo está votando a la baja, y asumo que se debe a que la información está obsoleta o porque Appcelerator compró aptana. No he usado pydev con Eclipse durante casi 2 años y la situación puede ser diferente ahora.
Acabo de descargar wxPython y ejecuté algunos de los programas de ejemplo desde here . Sin embargo, en cada línea que usa una variable de wx. *, Obtengo una "Variable no definida del error de importación"
Por ejemplo, el siguiente programa genera cinco errores en las líneas 1,4,8 y dos en la línea 5:
import wx
class MyFrame(wx.Frame):
""" We simply derive a new class of Frame. """
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(200,100))
self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
self.Show(True)
app = wx.App(False)
frame = MyFrame(None, ''Small editor'')
app.MainLoop()
El programa, sin embargo, compila y funciona perfectamente. No he realizado modificaciones significativas en pydev o eclipse, y la instalación de wxPython es reciente.
Esto me paso a mi Instalé PyDev, lo configuré y seguí mi camino alegre. Unos meses más tarde, instalé wxPython y tuve el mismo problema. Una forma fácil de solucionar es en eclipse:
Ventana -> Preferencias -> Pydev -> Intérprete - Python
Simplemente elimine el intérprete predeterminado y agregue uno nuevo (puede ser el mismo que tenía antes). Pydev / Eclipse busca en su directorio de instalación de Python y agrega las rutas correctas a su PYTHONPATH. Reinicié y todo estuvo bien. Me di cuenta de que añadió
C:/Python26/lib/site-packages/wx-2.8-msw-unicode
Por lo tanto, es probable que solo pueda agregarlo a PYTHONPATH en lugar de revisar todo lo anterior, asumiendo que esa ruta es donde está instalado este directorio.
Por cierto, estoy usando:
- Eclipse Helios
- Pydev 1.6.2.2010090812
- Python 2.6
- wxPython2.8-win32-unicode-2.8.11.0-py26
Pero creo que esto debería ser una solución bastante general al problema.
PyDev encuentra las referencias cuando configura el intérprete en
Window -> Preferences -> Pydev -> Interpreter - Python
Si wxPython no estaba en el directorio de paquetes de su sitio cuando configuró por primera vez el intérprete, la función de búsqueda del editor no conocerá las referencias a los objetos y nombres de wx. Para solucionar esto, quite el intérprete de
Window -> Preferences -> Pydev -> Interpreter - Python
y luego seleccione nuevo. Vuelva a agregar la instalación de Python de nuevo y presione Aplicar. En este momento, Pydev volverá a importar todos los objetos del paquete de sitio y debe llenar el diccionario de búsqueda. Usted querrá reiniciar Eclipse para que los cambios tengan lugar.
Tratar
wx = wx
No preguntes por qué. Este enfoque (que encontré al intentar solucionar el problema en partes más pequeñas) parece eliminar el problema de las variables indefinidas wx.
Use la combinación de teclas CTRL+1
en el texto de error y agregue #@UndefinedVariable
o #@UnresolvedImport
al final de las líneas correspondientes con errores, se eliminarán estas advertencias temporalmente. Vea esta respuesta: ¿Cómo soluciono los errores de PyDev "Variable no definida de importación"?
#import wx
from wx import wx #@UnresolvedImport
Arreglará.