Saya memiliki direktori yang penuh dengan skrip (katakanlah project/bin
). Saya juga memiliki perpustakaan yang terletak project/lib
dan ingin skrip memuatnya secara otomatis. Inilah yang biasanya saya gunakan di bagian atas setiap skrip:
#!/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
Ini agak rumit, jelek, dan harus ditempel di awal setiap file. Apakah ada cara yang lebih baik untuk melakukan ini?
Sungguh apa yang saya harapkan adalah sesuatu yang sehalus ini:
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
Atau bahkan lebih baik, sesuatu yang tidak akan rusak ketika editor saya (atau orang lain yang memiliki akses komit) memutuskan untuk menyusun ulang impor sebagai bagian dari proses pembersihannya:
#!/usr/bin/python --relpath_append ../lib
import mylib
Itu tidak akan melakukan port langsung ke platform non-posix, tetapi itu akan menjaga semuanya tetap bersih.