2010-01-26 9 views
18

Je viens de télécharger wxPython, et a été en cours d'exécution quelques-uns des exemples de programmes de here. Cependant, sur chaque ligne qui utilise une variable de wx. *, J'obtiens une variable "Undefined from import error"Undefined variable d'importation lors de l'utilisation wxPython dans pydev

Par exemple, le programme suivant génère cinq erreurs sur les lignes 1,4,8 et deux sur la ligne 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() 

Le programme, cependant, compile et fonctionne parfaitement. Je n'ai apporté aucune modification significative à pydev ou eclipse, et l'installation de wxPython est fraîche.

+0

J'ai le même problème. Est-ce qu'une solution à ce problème est disponible en plus d'attendre que les développeurs l'aient résolu? –

+0

J'ai eu le même problème et il est parti quand j'ai mis à jour vers PyDev 1.5.6. –

Répondre

3

Certaines des versions les plus récentes de pydev (vers Janvier 2010) ont du mal à suivre les noms importés vers le bas. Ce n'est probablement rien.

Si cela est encore se produire, le bug à signaler aptana appcelerator, mais sans doute ils savent déjà à ce sujet.

je reçois ce problème lorsque vous travaillez avec des paquets que je viens récemment téléchargé, et éventuellement les erreurs disparaissent. Mon problème le plus récent était après le téléchargement de pygame (vers janvier 2010).

Modifier

J'ai modifié ma réponse ci-dessus puisque les gens sont downvoting, et je suppose que c'est parce que l'information est périmé, ou parce que Appcelerator a acheté Aptana. Je n'ai pas utilisé pydev avec Eclipse depuis presque 2 ans et la situation peut être différente maintenant.

+0

Je ne pense pas que ce soit un bug, même si c'était en janvier. Voir ma réponse ci-dessous. – oob

+0

Avec pydev 1.5.6.2010033101, aujourd'hui j'avais toujours l'erreur d'importation en essayant d'inclure networkx pour la première fois. La procédure que vous avez mentionnée dans votre réponse est ce que j'utilise depuis janvier 2010 pour résoudre le problème. De temps en temps, il suffit de redémarrer simplement Eclipse (par exemple avec pygame en janvier 2010), même si l'interpréteur remove/add fonctionne à chaque fois. –

+0

Aussi, je pense que je me souviens avoir lu quelque part sur le site d'aptana une recommandation d'utiliser la méthode remove/add que vous avez listée ci-dessous comme solution. –

3

Utilisez CTRL+1 combinaison de touches sur le texte d'erreur et ajouter #@UndefinedVariable ou #@UnresolvedImport à la fin des lignes correspondantes avec des erreurs, il va supprimer ces avertissements temporaires. Voir cette réponse: How do I fix PyDev "Undefined variable from import" errors?

3

Essayez

WX = WX

Ne demandez pas pourquoi. Cette approche (que j'ai trouvée en essayant de casser le problème dans de plus petites parties) semble juste enlever le problème de variables non définies wx.

3
#import wx 
from wx import wx #@UnresolvedImport 

va corriger.

40

Cela m'est arrivé. J'avais installé PyDev et l'ai configuré et ai continué ma manière joyeuse. Quelques mois plus tard, j'ai installé wxPython et j'ai eu le même problème. Un moyen facile de fixer est éclipsée:

Fenêtre -> Préférences -> Pydev -> Interprète - Python

supprimer simplement l'interpréteur par défaut et ajouter un nouveau (il peut être le même que celui que vous aviez avant) . Pydev/Eclipse recherche dans votre répertoire d'installation Python et ajoute les chemins corrects à votre PYTHONPATH. J'ai redémarré et tout allait bien.Je l'ai remarqué ajouté

C:\Python26\lib\site-packages\wx-2.8-msw-unicode

Ainsi, vous pouvez probablement ajouter que la PYTHONPATH au lieu de passer par tout ce qui précède, en supposant que chemin est l'endroit où ce répertoire est installé.

Soit dit en passant, je me sers:

  1. Eclipse Helios
  2. Pydev 1.6.2.2010090812
  3. Python 2.6
  4. wxPython2.8-win32-unicode-2.8.11.0-py26

Mais je pense que cela devrait être une solution assez générale au problème.

+0

À la votre! Note pour OsX: le programme d'installation de wxpython place wxpython dans un emplacement différent - après avoir ajouté "/usr/local/lib/wxPython-unicode-2.8.11.0/lib/python2.6/site-packages/wx-2.8-mac- unicode "ça a marché pour moi – christianbrodbeck

+0

C'est le chemin à parcourir. – initzero

+0

+1 Travaillé pour moi en cours d'exécution PyDev 2.4.0 –

7

PyDev trouve les références lorsque vous configurez l'interprète dans

Window -> Preferences -> Pydev -> Interpreter - Python 

Si wxPython était pas dans votre répertoire site-packages lors de la première installation de l'interprète, puis les références aux objets WX et les noms ne seront pas connus de la fonction de recherche de l'éditeur. Pour résoudre ce problème, supprimez l'interpréteur de

Window -> Preferences -> Pydev -> Interpreter - Python 

puis sélectionnez Nouveau. Ajoutez de nouveau l'installation Python et appuyez sur Appliquer. À ce moment, Pydev importera à nouveau tous les objets de package de site et devrait remplir le dictionnaire de recherche. Vous devez redémarrer Eclipse pour que les modifications soient prises en compte.