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?
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:
J'ai vérifié que ce dossier (D:\dev\lib
) est ajouté aux {[8] } et les travaux d'importation.
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é"
À 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:
-
Allez Dans Préférences / Paramètres. Fichier - > Paramètres (Nom IDE - > préférences pour macOS)
Sélectionnez Construire, L'Exécution, Le Déploiement
Sélectionnez Interpréteur Python
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.
- 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.
Bon Codage.