Tenho um diretório cheio de scripts (digamos project/bin
). Também tenho uma biblioteca localizada em project/lib
e desejo que os scripts a carreguem automaticamente. Isso é o que eu normalmente uso no início de cada 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
Isso é meio complicado, feio e deve ser colado no início de cada arquivo. Existe uma maneira melhor de fazer isso?
Realmente, o que espero é algo tão suave quanto isto:
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
Ou, melhor ainda, algo que não quebraria quando meu editor (ou outra pessoa que tenha acesso de commit) decida reordenar as importações como parte de seu processo de limpeza:
#!/usr/bin/python --relpath_append ../lib
import mylib
Isso não portaria diretamente para plataformas não-posix, mas manteria as coisas limpas.