Ho una directory piena di script (diciamo project/bin
). Ho anche una libreria situata in project/lib
e voglio che gli script la caricino automaticamente. Questo è quello che normalmente uso all'inizio di ogni 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
Questo è un po 'ingombrante, brutto e deve essere incollato all'inizio di ogni file. C'è un modo migliore per farlo?
Quello che spero in realtà è qualcosa di così fluido:
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
O ancora meglio, qualcosa che non si interromperà quando il mio editor (o qualcun altro che ha accesso con commit) decide di riordinare le importazioni come parte del suo processo di pulizia:
#!/usr/bin/python --relpath_append ../lib
import mylib
Ciò non sarebbe portato direttamente su piattaforme non posix, ma manterrebbe le cose pulite.