bonjour
mon but est de fourguer tous mes modules personnels dans un dossier du disque dur au fur et à mesure que je les écris (le dossier s'appelle "Mod")
et ensuite, de ne plus m'en soucier, et de pouvoir les appeler depuis n'importe quel programme Python (disons truc.py) enregistré n'importe où ailleurs sur mon disque dur
1) j'arrive à faire fonctionner çà si truc.py se trouve au même endroit que Mod dans l'arborescence (dans Mod, ou au même niveau que lui)
Dans ce cas, je mets un __int__.py à l'intérieur de Mod, contenant :
__all__ = ['module1','module2',...]
bref toute la liste des .py présents dans Mod
Et là, si dans truc.py je marque :
ça marche ; je peux utiliser les fonctions définies dans module1
2) ça se complique si Mod peut être n'importe où indépendamment de truc.py
J'ai lu qu'il faudrait taper
export PYTHONPATH=$PYTHONPATH:/chemin/vers/Mod
dans une fenêtre de terminal, puis vérifier avec echo $PYTHONPATH mais :
a) je ne sais pas si au prochain "démarrage" de Python ça marchera encore
b) si dans truc.py je tape import module1, il dit ne pas connaître
pouvez vous m'aider ?
je soupçonne que le $PYTHONPATH modifié dans mon terminal n'est pas celui du python appelé lorsque j'exécute mon programme truc.py. Peut-être une histoire de plusieurs versions pythons installées sur mon disque dur ?
J'avais fait un travail pour tenter de comprendre où se trouvent les différentes installations de Python mais ça ne m'aide pas à résoudre mon problème :http://mathoscope.ouvaton.org/mathos...r_macosX.xhtml
J'ai donc deux questions :
i) comment gérer le $PYTHONPATH pour que mes modules du dossier Mod puissent être appelés depuis n'importe quel truc.py enregistré n'importe où sur le disque dur ?
ii) lorsque je rajouterai des modules dans Mod, faudra-t-il que je tape à la main leur nom dans un fichier du type __init__.py décrit ci-dessus ou bien cela pourra-t-il se faire automatiquement ?
Pour le point ii), il me semble qu'il y a des réponses ici : https://stackoverflow.com/questions/...es-in-a-folder mais ça me dépasse en fait, je je sais pas par où commencer la lecture, je suis juste un utilisateur lambda du langage Python.
L'histoire du $PYTHONPATH, je l'ai trouvée ici :
https://docs.python.org/fr/2/tutoria...tandardmodules
mais comme indiqué ci-dessus chez moi ça ne fonctionne pas. Ai-je cependant bien lu ce qu'ils préconisent sur ce site ?
merci de votre aide !!
Vincent
Partager