Python: лучший способ добавить в sys.path относительно текущего запущенного скрипта

У меня есть каталог, полный скриптов (скажем, 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, но сохранит все в чистоте.

79
задан dreftymac 18 May 2016 в 22:10
поделиться