Как распространить пакет Python для малого предприятия
Я работаю на небольшом предприятии, где количество конечных пользователей и вкладов для определенного набора пакетов будет не более 5 навсегда (это гарантировано). В течение последних 3 месяцев мы только что провели все наши исследования и разработки на общем диске Windows, используя anaconda и локальные репозитории git для каждого проекта. Как вы можете себе представить, полученный исходный код стал чем-то вроде беспорядка: код каждого человека указывает на конкретный пакет в чужой папке, а зависимости постоянно нарушаются.
Мы наконец-то получили репозиторий github, и большая часть нашего кода стала стабильной в работе. Я хочу распространить этот код в виде tarball и сделать так, чтобы каждый человек собирал из исходного кода disutils в общей среде anaconda. Полный пакет будет организован по каждому подпакету и будет содержать файлы как Python, так и Python. В конечном итоге это будет выглядеть примерно так
|tools
|setup.py (created with disutils)
| __init__.py
|package A (dir)
|__init__.py
|module A1.py
|module A2.pyx
....
|package B (dir)
|__init__.py
|package B1.py
|package B2.pyx
Я собираюсь поместить пакет "tools" в репозиторий github. Каждый раз, когда происходят важные изменения в пакете инструментов, мы извлекаем из основной ветки и перезапускаем файл setup.py, чтобы обновлять их локальный пакет инструментов. Кроме того, мы все будем использовать общую среду anaconda, чтобы зависимости от внешних пакетов не нарушали установку пакета инструментов.
Это правильный способ распространения производственного кода среди небольшого числа конечных пользователей? Я пришел из исследования, а не из опыта разработки программного обеспечения, и я действительно не знаю, как работает распространение программного обеспечения. Вызывает ли каждый перекомпиляцию из исходного кода каждый раз, когда мы обновляем пакет "tools" излишним? Традиционно, когда я устанавливаю с помощью conda/pip, я могу просто сказать что-то вроде "pip install mypackage --upgrade". Есть ли подобная процедура, которую мы можем использовать здесь?