Problèmes d'importation non résolus avec PyDev et Eclipse

Je suis très nouveau pour PyDev et Python, bien que J'ai utilisé Eclipse pour Java plenty. J'essaie de travailler à travers quelques exemples de Python et cela ressemble à un problème extrêmement trivial qui devient extrêmement ennuyeux. J'utilise Linux Ubuntu 10.04.

je veux pouvoir utiliser le fichier odbchelper.py, qui est situé dans l'annuaire /Desktop/Python_Tutorials/diveintopython/py

Voici mon example.py dossier sur lequel je travaille dans mon Projet PyDev / Eclipse:

import sys
sys.path.append("~/Desktop/Python_Tutorials/diveintopython/py")

cela fonctionne très bien, mais alors je veux que la ligne suivante de mon code soit:

import odbchelper

et cela provoque une erreur d'importation non résolue à chaque fois. J'ai ajouté des fichiers __init__.py à presque tous les répertoires possibles et cela n'aide en rien. J'ai essayé d'ajouter __init__.py fichiers un à la fois aux différents niveaux de répertoires entre l'emplacement du projet et le odbchelper.py dossier, et j'ai aussi essayé d'ajouter le __init__.py fichiers de tous les répertoires entre les deux simultanément. Aucun ne fonctionne.

Tout ce que je veux faire est d'avoir un projet, quelque part dans un autre répertoire, dire /Desktop/MyStuff/Project , dans lequel j'ai example.py ... et puis de example.py je veux importer odbchelper.py de /Desktop/Python_Tutorials/diveintopython/py/

chaque réponse du forum je peux trouver juste dire d'utiliser la fonction sys.path.append() pour ajouter ce répertoire à mon chemin, et puis l'importer ... mais c'est précisément ce que je fais dans mon code et ça ne fonctionne pas.

j'ai aussi essayé le Ctrl - 1 astuce pour supprimer le message d'erreur, mais le programme ne fonctionne toujours pas correctement. J'ai une erreur, ImportError: No module named odbchelper . Donc il est clair que le chemin n'est pas ajouté, ou il y a un problème que toutes mes nombreuses permutations d'ajout de fichiers __init__.py ont manqué.

c'est très frustrant que quelque chose d'aussi simple... appeler des choses à partir d'un fichier qui existe ailleurs sur mon ordinateur... exige autant d'efforts.

96
demandé sur jessag 2011-01-08 02:55:27

10 réponses

dans les propriétés de votre projet pydev, il y a un volet appelé" PyDev - PYTHONPATH", avec un sous-volet appelé"bibliothèques externes". Vous pouvez ajouter des dossiers source (n'importe quel dossier qui a un __init__.py ) au chemin en utilisant ce volet. Votre code de projet pourra ensuite importer des modules à partir de ces dossiers sources.

125
répondu David German 2011-04-19 19:18:01

je viens de mettre à jour un projet WXWindows en Python 2.7 et je n'ai eu aucun mal à obtenir que Pydev reconnaisse le nouvel interpréteur. A fait la même chose que ci-dessus en configurant l'interpréteur, a fait une nouvelle installation D'Eclipse et Pydev. Je pensais qu'une partie de python devait être corrompue, alors j'ai tout réinstallé. Arghh! Fermé et a rouvert le projet, et a redémarré éclipse entre tous ces changements.

enfin remarqué que vous pouvez ' supprimer le projet PyDev config' par un clic droit sur le projet. Alors il peut être transformé en projet PyDev à nouveau, maintenant il est bon comme l'or!

40
répondu Paul 2014-07-29 18:54:15

j'utilise eclipse kepler 4.3, PyDev 3.9.2 et sur mon ubuntu 14.04 j'ai rencontré le même problème. J'ai essayé et j'ai passé des heures, avec toutes les options ci-dessus, mais en vain. Puis j'ai essayé la suivante qui était grande:

  • , Sélectionnez Projet -> Clic Droit-> PyDev -> Supprimer PyDev Projet De Config
  • fichier " -> redémarrer

et J'utilisais Python 2.7 comme interprète, bien que cela n'ait pas d'effet, je pense.

35
répondu BitByte_Bake 2015-03-30 16:07:52

j'ai corrigé mon pythonpath et tout était parfait quand j'ai importé des trucs à travers la console, mais toutes ces importations non résolues étaient toujours marquées comme des erreurs dans mon code, peu importe combien de fois j'ai redémarré eclipse ou rafraîchi/nettoyé le projet.

j'ai bien cliqué sur le projet->Pydev->supprimer les marqueurs d'erreur et il s'est débarrassé de ce problème. Ne vous inquiétez pas, si votre code contient des erreurs qu'ils seront re-marqué.

17
répondu Martin 2012-12-04 18:38:59

projet-->propriétés-->pydev-pythonpath-->bibliothèques externes --> ajouter dossier source, ajouter dans le DOSSIER PARENT du projet. Puis redémarrez eclipse.

8
répondu zhaokongsheng 2014-03-25 07:05:11

voici ce qui a fonctionné pour moi (sugested by soulBit):

1) Restart using restart from the file menu
2) Once it started again, manually close and open it.

C'est la solution la plus simple jamais et il supprime complètement le problème.

4
répondu Brana 2014-06-13 02:43:31

Il y a deux façons de résoudre ce problème:

  • Supprimer l'interpréteur Python de "interpréteurs Python" et l'ajouter à nouveau.
  • ou simplement ajouter le dossier avec les bibliothèques de l'interpréteur que vous utilisez dans votre projet, dans mon cas j'utilisais "bottle" et le dossier que j'ai ajouté était "c:\Python33\Lib\site-packages\bottle-0.11.6-py3.3.de l'œuf

maintenant Je ne vois plus l'erreur, et le code complétion fonctionne aussi bien avec de la "bouteille".

1
répondu PachinSV 2013-07-05 07:04:07

J'exécute Eclipse 4.2.0 (Juno) et PyDev 2.8.1, et j'ai rencontré ce problème avec une lib installée sur mon site-packages path. Selon cette question SO:

Pydev and *.fichiers pyc

...il y a un problème avec les fichiers PyDev et pyc. Dans le cas du lib particulier que j'ai essayé de mentionner, tout ce qui est livré est des fichiers pyc.

voici ce que j'ai fait pour adresser ceci:

  1. installer uncompyle2 à partir de https://github.com/Mysterie/uncompyle2
  2. Exécuter uncompyle2 contre l' *.fichiers pyc dans le site-packages lib. Exemple:

    uncompyle2 -r -o /tmp /chemin/vers/site-packages/lib

  3. renommer le résultat *.fichiers pyc_dis produits de uncompyle2 à *.1519140920"
  4. Move / copy these *.fichiers py vers le site-packages chemin
  5. dans Eclipse, sélectionner Fichier > redémarrer

Le suspens d'erreur d'importation concernant .les fichiers pyc devraient maintenant disparaître.

1
répondu MutantXenu 2017-05-23 12:34:41

suivant, à mon avis va résoudre le problème

  1. ajouter le dans le .py to your "~ / Desktop/Python_Tutorials/diveintopython / py" folder
  2. Aller à la Fenêtre --> Préférences --> PyDev --> Interprètes --> Interpréteur Python pour supprimer votre Interpréteur Python paramètre (la raison en est, car PyDev pas en mesure d'actualiser automatiquement les mises à jour apportées à un Système PythonPath)
  3. ajouter au Interpréteur avec les mêmes détails qu'avant (ce qui rafraîchira le réglage de votre interpréteur Python avec les mises à jour faites sur votre PythonPath)
  4. enfin depuis que votre dossier" ~/Desktop/Python_Tutorials/diveintopython/py " n'est pas un PythonPath standard, vous devrez l'ajouter. Il y a deux façons de le faire

A. Selon ce que David German a suggéré. Toutefois, cela ne s'applique qu'aux projets particuliers, vous êtes en b. Ajouter dans "~/Desktop/Python_Tutorials/diveintopython/py" dans une nouvelle PythonPath en vertu de la Fenêtre --> Préférences --> PyDev --> Interprètes --> Interpréteur Python --> Bibliothèques sous-onglet --> nouveau dossier

J'espère que ça aidera.

0
répondu Ridwan Kurniawan 2014-10-05 02:02:47
KD.py

class A:
a=10;

KD2.py 
from com.jbk.KD import A;
class B:
  b=120;

aa=A();
print(aa.a)

CELA fonctionne parfaitement fichier pour moi

un autre exemple est

main.py
=======
from com.jbk.scenarios.objectcreation.settings import _init
from com.jbk.scenarios.objectcreation.subfile import stuff

_init();
stuff();

settings.py
==========
def _init():
print("kiran")


subfile.py
==========
def stuff():
print("asasas")    
-1
répondu Java By Kiran 2018-01-25 19:48:47