140 votes

Comment réparer les erreurs PyDev "Variable indéfinie de l'importation"?

J'ai un projet de Python à l'aide de PyDev dans Eclipse, et PyDev continue de générer de fausses erreurs de mon code. J'ai un module settings qui définit un settings objet. Je les importer dans le module b et affecter un attribut avec:

from settings import settings
settings.main = object()

Dans certains de mon code, mais pas la totalité, des énoncés comme:

from settings import settings
print settings.main 

... générer des "Undefined variable à l'importation: principaux messages" dans l'Éclipse du code d'erreur volet, même si le code s'exécute sans problème. Comment puis-je corriger?

158voto

Fabio Zadrozny Points 11951

Pour de code dans votre projet, le seul moyen est d'ajouter un commentaire en disant que vous avez attendu que (le code statique-analyse ne voit que ce que vous voyez, pas d'exécution info -- si vous avez ouvert ce module vous-même, vous n'auriez aucune indication de ce qui était prévu).

Vous pouvez utiliser ctrl+1 (Cmd+1 pour Mac) dans une ligne avec un message d'erreur et pydev vous présente une option pour ajouter un commentaire pour ignorer cette erreur.

Si c'était un module externe, vous pouvez l'ajouter à l'obligation de les builtins de sorte qu'il a été forcé à être analysé par l'exécution d'un shell avec les informations d'exécution (voir http://pydev.org/manual_101_interpreter.html pour plus de détails).

Une autre solution pourrait être la création d'un "stub" vous-même et en l'ajoutant à la prédéfinis' achèvements (http://pydev.org/manual_101_interpreter.html a également des détails sur qui).

50voto

ubershmekel Points 2254

Je suis à l'aide d'opencv qui s'appuie sur des fichiers binaires, etc donc, j'ai des scripts où chaque autre ligne a cette stupide erreur. Python est un langage de programmation dynamique, de telles situations ne devraient pas être considérées comme des erreurs.

J'ai enlevé ces erreurs tout en allant à:

Fenêtre -> Préférences -> PyDev -> Editeur -> L'Analyse De Code -> Undefined -> Undefined Variable À L'Importation -> Ignorer

Et c'est tout.

Il peut également être, Fenêtre -> Préférences -> PyDev -> Editeur -> l'Analyse de Code -> Importations -> Importer introuvable -> Ignorer

10voto

Jules Points 98

J'ai eu un problème similaire avec un Eclipse/PyDev projet. Dans ce projet, le répertoire racine du code python est un sous-répertoire du projet.

--> MyProject
 + --> src         Root of python code
   + --> module1     A module 
   + --> module2     Another module
 + --> docs
 + --> test

Lorsque le projet a été débogué ou d'exécuter tout ce qui était beau comme répertoire de travail a été mis à la bonne place. Cependant, le PyDev d'analyse de code a été, à défaut de trouver toutes les importations en provenance de module1 ou module2.

La Solution est de modifier les propriétés du projet -> PyDev - PYTHONPATH l'article et supprimer /MyProject à partir de la source de l'onglet dossiers et ajouter /Monprojet/src de la place.

3voto

Leon Points 21

J'ai eu le même problème. Je suis à l'aide de Python et Eclipse sous Windows. Le code a été en cours d'exécution seulement beaux, mais eclipse montrer les erreurs partout. Après j'ai changé le nom du dossier 'Lib' à 'lib' (C:\Python27\lib), le problème a été résolu. Il semble que si la capitalisation des lettres ne correspondent pas à celles dans le fichier de configuration, ce sera parfois causer des problèmes (mais il semble que pas toujours, parce que la vérification d'erreur était bien longtemps avant que le problème est apparu soudainement sans raison apparente).

0voto

oob Points 1093

Il est possible que vous ayez juste besoin de reconfigurer votre chemin Python dans Eclipse. Voir ma réponse à une question similaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X