Проект развертывания проекта Python

Вот ситуация: компания, в которой я сейчас работаю, дала мне свободу работать с Java или Python для разработки моих приложений. Компания имеет в основном опыт работы в Java.

Я решил пойти с Python, поэтому они были очень рады попросить меня поддержать все проекты / скрипты Python, связанные с обслуживанием баз данных, которые у них есть.

Не так уж плохо справляться со всеми этими вещами и забавно видеть, сколько свободного времени у меня по сравнению с Java-программистами. Есть только один, но расположение проектов - беспорядок.

Есть много сценариев, которые просто лежат на виртуальных машинах по всей компании. Некоторые из них имеют сложную функциональность, которая распределена по нескольким модулям (максимум 4).

Размышляя об этом, я понял, что не знаю, как с этим справиться, поэтому вот 3 вопроса.

  • Где я могу поставить автономные скрипты? Мы используем git в качестве нашей системы управления версиями.
  • Как структурировать макет проекта таким образом, чтобы пользователю не нужно было копаться глубоко в папках для запуска программ (в java я создал jar или jar и скрипт оболочки для обработки некоторых операций начальной загрузки).
  • Каков стандартный способ создания модулей, обеспечивающих простое повторное использование (mycompany.myapp.mymodule?)

2 ответа

Решение

Где я могу поставить автономные скрипты?

Вы организуете их "функционально" - основываясь на том, что они делают и почему люди их используют.

Язык (Python против Java) не имеет значения.

Вы должны думать о скриптах как о небольших приложениях, ориентированных на определенные потребности, и создавать соответствующие структуры каталогов для этого приложения.

Мы используем /opt/thisapp а также /opt/thatapp, Если вы хотите использовать общую точку монтирования, вы можете использовать другой путь.

Как структурировать макет проекта таким образом, чтобы пользователю не нужно было копаться в папках для запуска программ

Вы организуете их "функционально" - основываясь на том, что они делают и почему люди их используют. На верхнем уровне /opt/thisapp каталог, вы можете иметь __init__.py (потому что это пакет) и, возможно, main.py скрипт, который начинает настоящую работу.

В Python 2.7 и Python 3 у вас есть runpy модуль. При этом вы бы назвали свой главный скрипт верхнего уровня __main__.py

http://docs.python.org/library/runpy.html

Каков стандартный способ создания модулей, обеспечивающих простое повторное использование (mycompany.myapp.mymodule?)

Прочитать о packages, http://docs.python.org/tutorial/modules.html

Пакет - это способ создания иерархии модулей: если вы создаете файл с именем __init__.py в каталоге Python будет обрабатывать этот каталог как пакет и позволит вам импортировать его содержимое, используя точечный импорт:

spam \
       __init__.py
       ham.py
       eggs.py

import spam.ham

Модули внутри пакета могут ссылаться друг на друга - см. Документы.

Если это все сценарии обслуживания БД, я бы сделал пакет под названием БД или что-то в этом роде и поместил бы их все в него. Вы можете иметь подпакеты для более сложных. Так что, если у вас есть скрипт для очистки журналов транзакций, я не знаю, вы можете поместить его в ourDB.clean и делать

import ourDB.clean
ourDB.clean.transaction_logs( )
Другие вопросы по тегам