web-dev-qa-db-fra.com

L'ajout de modules python à pydev dans Eclipse entraîne une erreur d'importation?

J'ai du mal à faire que PyDev sur Eclipse reconnaisse les modules déjà installés. Voici mon approche détaillée. La machine est un Mac (Snow Leopard).

En terminal la commande

python --version

montre Python 2.6.6 .

import unidecode

et

from unidecode import unidecode

travailler les deux bien!

J'ai installé PyDev dans Eclipse et je suis allé configurer l’interpréteur Python (Auto Config). J'ai sélectionné tous les paquets proposés et appuyé sur Appliquer et Ok .

Mais Eclipse continue à se plaindre

Traceback (most recent call last):
  File "/Users/me/Documents/workspace/myproject/python/pythontest.py", line 12, in <module>
    from unidecode import unidecode
ImportError: No module named unidecode

Le fichier python ressemble à ceci

#!/usr/bin/env python
# encoding: utf-8


import sys
import os
from unidecode import unidecode


def main():
    print unidecode(u"Ågot Aakra")

if __== '__main__':
    main()

Quand je supprime la première ligne du script

#!/usr/bin/env python

il en résulte la même erreur.

Est-ce que quelqu'un sait où se situe le problème?

17
Aufwind

C'est la solution à mon problème:

  1. Découvrez le chemin d'accès au dossier ../site-packages/ de votre version python correspondante. (Pour moi, c'était /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/ pour python 2.6 sur mon Mac avec Snoe Leopard.)
  2. Ouvrez les préférences Eclipse et accédez à PyDev -> Interprète - Python .
  3. Sur le côté gauche de la zone inférieure, cliquez sur Nouveau dossier .
  4. Ajoutez le navigateur à ../site-packages/ de votre version python correspondante.
  5. Hit ouvert .
  6. Hit Appliquer .
  7. Hit Ok .

Et vous devriez être prêt à partir. =)

Merci à tous les participants, qui ont fourni des indications dans la bonne direction dans les commentaires.

27
Aufwind

J'ai rencontré le même problème aujourd'hui. J'utilise pydev et ai eu un projet de travail avec un certain nombre de sous-paquets. Tout à coup, après avoir créé un nouveau module, je n'ai pas pu utiliser ce module dans un package différent. La fonctionnalité déroutante était que je pouvais utiliser un autre module dans le même sous-paquet ...

Enfin après

  1. Redémarrage Eclipse
  2. supprimer/ajouter un interpréteur python et tous les packages de site
  3. ennuyé gratter la tête

J'ai supprimé toutes les classes compilées avec le script suivant:

import os

def clean_folder(folder):
  for file in os.listdir(folder):
    path = os.path.join(folder,file)
    if os.path.isdir(path):
        clean_folder(path)

    if '.pyc' == file[-4:]:
        print 'deleting: ' + str(path)
        os.remove(path)

if __== '__main__':
  folder = 'YOUR_PROJECT_SRC_PATH'
  clean_folder(folder)

et enfin je peux faire un travail "réel":) J'espère que cela aidera quelqu'un ...

2
jogamü

Vous pouvez simplement ajouter le module au chemin pydev. Accédez aux propriétés du projet (à partir du menu contextuel) -> PyDev -> PYTHONPATH -> Bibliothèques externes. Selon que le module se trouve dans un dossier source ou dans un fichier Zip/Egg, sélectionnez Ajouter un dossier source ou Ajouter Zip/jar/Egg. Accédez au répertoire site-packages et pointez sur le fichier ou le dossier approprié (le mien est: /usr/local/lib/pythonx.x/site-packages) 

2
picmate 涅

Lorsque Eclipse est "perdu" par rapport aux packages existants sur votre système ou dans votre projet, dans le menu contextuel de votre projet, choisissez l'élément de menu "Propriétés", puis l'élément "PyDev - PYTHONPATH" dans l'arborescence à gauche de dans la boîte de dialogue, puis sur le bouton "Forcer la restauration des informations internes". Apparemment, PyDev conserve un cache calculé des informations et lorsque, pour une raison quelconque, le cache devient incohérent, vous pouvez forcer PyDev à recalculer.

1
bootchk

Dans mon cas, je ne rencontrais pas cette erreur avant la compilation, mais lors de la compilation, j'ai reçu l'erreur ImportError: aucun module nommé myant.core . J'ai essayé d'ajouter les fichiers de PyDev-PYTHONPATH , mais encore une fois, j'ai eu la même erreur. Ensuite, j'ai réalisé que je n'avais pas besoin d'ajouter le chemin exactement au dossier où se trouvaient mes fichiers .py. Enfait je dois ajouter le dossier où myant.core est situé. Après cela, j’ai redémarré lorsque j’ai recompilé mon projet, le problème a été résolu. Je partagerais que j'ai:

Python 2.7 Eclipse kepler 4.3, PyDev 3.9.2 et sur mon Ubuntu 14.04

.py emplacement des fichiers: /${PROJECT_DIR_NAME}/src/myant/core, donc j'ai ajouté /${PROJECT_DIR_NAME}/src

1
BitByte_Bake

@Aufwind votre réponse ci-dessus a aidé mais n'a pas résolu pour moi.

  • Trouvez le chemin du dossier ../site-packages/ ....
  • Ouvrez les préférences Eclipse et accédez à PyDev -> Interpreter - Python.
  • Sur le côté gauche de la zone inférieure, cliquez sur Nouveau dossier .---> ici je me suis écarté de vos instructions. J'ai ajouté l'oeuf pour le module qui n'a pas été reconnu. L'ajout du dossier site-packages n'a pas résolu le problème. 
  • Hit ouvert.
  • Appuyez sur Appliquer.
  • Hit Ok.

Et puis j'étais prêt à partir. =)

0
tjim

J'ai résolu ce problème en allant dans les propriétés du projet -> PyDev Django Et en configurant le module de configuration de Django . enter image description here

0
Jerome
  1. Ouvrez la fenêtre Eclipse -> Préférences et accédez à PyDev -> Interprète.
  2. cliquer sur 'Vérifier si les interprètes sont synchronisés avec l'environnement'

Cela l'a fait pour moi. Aucun redémarrage Eclipse n'était requis.

0
IEEE754

Essayez les préférences> pydev> interprète - python, puis supprimez et ajoutez l'ajout de l'interpréteur python (assurez-vous de connaître le chemin d'accès avant de le supprimer), cochez toutes les cases lorsque vous l'ajoutez à nouveau. 

0
cerberos

Pour Oxygen 2 (je pense que cela a fonctionné sur les versions précédentes aussi) ...

  1. Faites un clic droit sur le dossier du projet et sélectionnez "Propriétés"
  2. Sélectionnez "PyDev - Interpreter/Grammar"
  3. Cliquez sur "Cliquez ici pour configurer un interprète non répertorié"
  4. Sélectionnez n'importe quel interpréteur existant dans la liste des interprètes configurés.
  5. Une boîte de dialogue "Sélection requise" devrait apparaître dans laquelle vous devez sélectionner un ou plusieurs interprètes à restaurer. Cochez toutes les cases
  6. Cliquez sur "Ok" et PyDev effectuera une nouvelle analyse, et je suppose, reconstruira une vue interne de vos packages de site.
  7. Cliquez sur "Appliquer et fermer" pour fermer tous les dialogues.

Pour que le balisage d'erreur d'importation disparaisse dans mon éditeur de code, je dois saisir un espace après l'importation incriminée, puis enregistrer la modification. L'erreur d'importation disparaît alors, car PyDev peut maintenant trouver le module d'importation incriminé.

0
chromeeagle