J'ai un répertoire plein de scripts (disons project/bin
). J'ai également une bibliothèque située dans project/lib
et je souhaite que les scripts la chargent automatiquement. C'est ce que j'utilise normalement en haut de chaque script:
#!/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 encombrant, moche et doit être collé au début de chaque fichier. Y a-t-il une meilleure manière de faire cela?
Ce que j'espère vraiment, c'est quelque chose d'aussi simple que ceci:
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
Ou encore mieux, quelque chose qui ne casserait pas lorsque mon éditeur (ou quelqu'un d'autre qui a un accès de validation) décide de réorganiser les importations dans le cadre de son processus de nettoyage:
#!/usr/bin/python --relpath_append ../lib
import mylib
Cela ne porterait pas directement sur des plates-formes non-posix, mais cela garderait les choses propres.