Лучшая практика для обработки пути / исполняемых файлов в сценариях проекта на Python (например, что-то вроде Django manage.py или fabric)

Я делаю много работаю над разными проектами (я ученый) в довольно стандартизированной структуре каталогов. например:

project
   /analyses/
   /lib
   /doc
   /results
   /bin

Я помещаю все свои различные служебные скрипты в / bin /, потому что чистота близка к благочестию. Однако мне нужно жестко указать пути ( например ../../x/y/z), а затем мне нужно запустить что-то внутри ./bin/, иначе они сломаются.

Я использовал Django, и у него есть /manage.py, который запускает различные django-вещи и автоматически обрабатывает путь.Я также использовал ткань для запуска различных пользовательских функций.

Вопрос: Как мне сделать нечто подобное? а как лучше? Я могу легко написать что-нибудь в /manage.py, чтобы внедрить корневой каталог в sys.path и т. Д., Но тогда я хотел бы иметь возможность делать "./manage.py foo", который запускал бы /bin/foo.py. Или можно заставить фабрику вызывать исполняемые файлы из определенного каталога?

В основном - я хочу что-нибудь простое и не требующее обслуживания. Я хочу иметь возможность перетащить исполняемый скрипт / файл / что угодно в ./bin/ и не иметь дело с проблемами пути или проблемами импорта.

Как лучше всего это сделать?

13
задан Puzzled79 7 February 2012 в 21:58
поделиться