J'ai un répertoire rempli de scripts (disons project/bin
). Je dispose également d'une bibliothèque située à project/lib
et que les scripts le chargent automatiquement. C'est ce que j'utilise normalement au début de chaque scripts :
#!/usr/bin/python
from os.path import dirname, realpath, sep, pardir
import sys
sys.path.append(dirname(realpath(__file__)) + sep + pardir + sep + "lib")
# ... now the real code
import mylib
C'est un peu lourd, moche, et il faut le coller au début de chaque fichier. Existe-t-il une meilleure façon de procéder ?
Ce que j'espère vraiment, c'est quelque chose d'aussi fluide que cela :
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
Ou mieux encore, quelque chose qui ne se briserait pas lorsque mon éditeur (ou quelqu'un d'autre qui a un accès autorisé) déciderait de réorganiser les importations dans le cadre de son processus de nettoyage :
#!/usr/bin/python --relpath_append ../lib
import mylib
Cette solution ne serait pas directement portable sur les plates-formes non-posix, mais elle permettrait de garder les choses propres.