Проект развертывания проекта 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( )