IntelliJ Python plugin & exécuter classpath

J'ai un projet situé dans / home / myself/workspace / Project1, pour lequel j'ai créé un SDK à partir d'un Python 2.7.3 Virtualenv que j'ai configuré.
Ce projet utilise du code externe que j'ai dans un répertoire accessible, par exemple / home / myself / LIBRARY; ce répertoire contient plusieurs répertoires avec du code, des documents, etc....
Par exemple, il existe un module "important_util" situé à /home/myself/LIBRARY/mymodule/important_util.py.

Maintenant, j'ai ajouté toute la bibliothèque dir / home / myself / dans le SDK Classpath, et dans la fenêtre de L'éditeur, il apparaît très bien. Les importations et les appels sont reconnus et je peux également naviguer dans le code dans les répertoires de la bibliothèque.

Le problème est que, lorsque j'essaie d'exécuter mon programme, il échoue lors de la première importation en utilisant la bibliothèque!!!

Traceback (most recent call last):
   File "/home/myself/workspace/Project1/my_program.py", line 10, in <module>
      from mymodule import important_util as ut 
      ImportError: No module named mymodule

J'ai aussi essayé d'ajouter les mêmes répertoires à la section "Bibliothèques globales" dans la section Sources...mais pas de chance.

Je n'arrive pas à trouver un moyen d'ajouter ce code au classpath D'exécution, comment serais-je capable de faire cela?

22
demandé sur abhi 2012-12-21 21:49:04

3 réponses

Assurez-vous que vous avez __init__.py dans mymodule répertoire:

Les fichiers __init__.py sont nécessaires pour que Python comme contenant des paquets; ceci est fait pour empêcher répertoires avec un nom commun, tel que string, de involontairement masquer les modules valides qui se produisent plus tard sur le chemin de recherche du module. Dans le cas le plus simple, __init__.py peut simplement être un fichier vide, mais il peut exécutez également le code d'initialisation pour le paquet ou définissez __all__ variable, décrite plus loin. ©

UPDATE : dans IntelliJ IDEA, des répertoires supplémentaires doivent être ajoutés en tant que dépendances du Module ou configurés en tant que Libraries (à ajouter aux dépendances ) au lieu de l'onglet Classpath du SDK Python:

Dépendance

J'ai vérifié que ce dossier (D:\dev\lib) est ajouté aux {[8] } et les travaux d'importation.

15
répondu CrazyCoder 2012-12-24 15:29:13

Dans IntelliJ 14 c'est un peu différent, vous êtes des modules / oeufs comme ceci:

  • Allez dans Fichier - > Structure du projet
  • Sélectionnez maintenant Modules, puis L'onglet" dépendances "
  • Cliquez sur l'icône "+" et sélectionnez "Bibliothèque"
  • Cliquez sur "nouvelle bibliothèque" et sélectionnez Java (je sais que c'est bizarre...)
  • Choisissez maintenant plusieurs modules / egg et "OK".
  • Sélectionnez "Classes" dans catégories.
  • Donnez un nom à votre nouvelle bibliothèque, "Ma bibliothèque Python pas Java"
  • et enfin cliquez sur "Ajouter Sélectionné"
11
répondu Matthew Wilcoxson 2015-04-22 17:05:00

À partir de la Version de 2017.1, l'ajout a été modifié à nouveau. Il n'y a pas de structure de projet dans le menu fichier. Écrire la procédure actuelle vers le bas:

  1. Allez Dans Préférences / Paramètres. Fichier - > Paramètres (Nom IDE - > préférences pour macOS)

  2. Sélectionnez Construire, L'Exécution, Le Déploiement

entrez la description de l'image ici

  1. Sélectionnez Interpréteur Python

  2. Sélectionnez dans le menu déroulant du projet interpréteur et sélectionnez le chemin du chemin de la version de Python requis pour le projet.

entrez la description de l'image ici

  1. Cliquez sur Appliquer et attendez quelques minutes pour laisser IntelliJ indexer les paquets python.

Toutes les erreurs devraient disparaître maintenant et vous devriez pouvoir voir Python utilisé dans le projet dans la liste des bibliothèques externes.

entrez la description de l'image ici

Bon Codage.

1
répondu Mayank Patel 2017-08-18 03:57:19