У меня есть каталог, полный скриптов (скажем project/bin
). У меня также есть библиотека, расположенная в project/lib
, и хочу, чтобы скрипты автоматически загружали ее. Это то, что я обычно использую в верхней части каждого 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
Это довольно громоздко, уродливо и должно быть вставлено в начале каждого файла. Есть ли лучший способ сделать это?
Действительно, на что я надеюсь, это что-то столь же гладко, как это:
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
Или, что еще лучше, что-то, что не сломается, когда мой редактор (или кто-то другой, кто имеет право доступа) решает переупорядочить импорт как часть процесса очистки:
#!/usr/bin/python --relpath_append ../lib
import mylib
Это не будет напрямую переноситься на платформы, отличные от posix, но это будет чистым.