У меня есть каталог, полный скриптов (допустим project/bin
). У меня также есть библиотека, project/lib
и я хочу, чтобы скрипты автоматически загружали ее. Это то, что я обычно использую в начале каждого скрипта:
#!/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, но сохранит все в чистоте.