Найти - Пользователи
Полная версия: Деплой python приложения. Разработанных в windows.
Начало » Python для новичков » Деплой python приложения. Разработанных в windows.
1 2 3
PEHDOM
freeddos слишком расплывчатая формулировка, если вам для работы с веб фреймоврками то вроде жи пайчарм умеет такое изкаробки https://www.jetbrains.com/help/pycharm/configuring-remote-interpreters-via-ssh.html#
Хотя вот есть еще вот такой колхоз https://habr.com/ru/post/256433/ для комьюнити едишина.

freeddos
загружаться на GitHub он не будет.
git это не GitHub вы можете поднять свой git-сервер с преферансом и стюардесами, благо это достаточно просто, куда кроме вас никто не будет иметь доступа.https://habr.com/ru/company/ruvds/blog/359216/

freeddos
Да это будут не большие проекты рабочие типа web api которые будут дергать информацию из разных мест.
И хотелось бы вести разработку в windows и потом все что наизменяли и на программировали попало в продакшн.
Если это делается средствами git, то правильно я понимаю что для pycharm нужен плагин и как то прикрутить его к работающему серверу где крутиться продакшн?
FishHook
freeddos
то правильно я понимаю
вы понимаете совсем не правильно
для понимания вам надо прочитать туториал по гиту
Striver
И хотелось бы вести разработку в windows и потом все что наизменяли и на программировали попало в продакшн.
Непонятно, при чём тут вообще git или svn. Они нужны для самого процесса разработки, чтобы можно было в любой момент откатиться 1 или 10 шагов назад.
А для простого “закидывания” результата работы на сервер (неважно, линукс, винда или что-то другое) нужны отдельные средства. Да, это могут делать GitHub или (удобнее) GitLab (но это надо как-то настраивать).
Но я не понимаю, почему для “маленьких проектов” недостаточно просто закинуть каталог с помощью FAR'а на сервер. А потом через Putty перезапустить сервис на сервере. Тут всех действий на 1-2 минуты.
freeddos
Я согласен что можно закидывать в ручную.
А так же пакеты устанавливать в ручную и перезапускать.
Просто хочется понять удобные практики как это делают “взрослые дяди”.

А так же меня интересует такой момент с докер контейнерами. Я так понимаю что можно создать контейнер у себя на windows (с недавнего времени по статьям вроде все хорошо в виде м ними). Разрабатывать прям в контейнере у себя на локальной машине. А потом когда нужно убивать контейнер на сервере и переносить уже с разработкой (тогда и пакеты будут на месте и сам исходный код).
Можно ли из pycharm прям в контейнере редактировать и запускать код?
doza_and
freeddos
или как обычно это делается (разрабатывать на windows и выкладывать на linux)
Очень легко! Так обычно не делается.
1. Разработку крайне желательно вести на той ОС на которой будет применяться ПС.
2. Большинство разработчиков и особенно для web не ведут разработку на windows
3. Деплой приложения на рабочий сервер выполняется редко. Не слышал чтобы ктото заморачивался с автоматизацией.
4. Не знаю как у других, но у меня ide это редко используемая штука. Скорее консоль в разных вариантах.
И в консоли очевидно организовать на удаленной машине цикл останов службы/обновление кода/запуск службы например при помощи ssh вообще не проблема. Скорее всего в неназванной вами ide тоже есть такая возможность вызвать скрипты командной оболочки.
5. Очевидно что большинство ide поддерживают и удаленную отладку.

p.s.
очевидно перезалить файлы можно, но это неудобно, как писали 1-2 минуты
гитом вытащить актуальную версию это секунды.
Установка зависимостей разовая процедура. Но если у вас много машин… ну тогда вам в saltstack/ansible.
Striver
Просто хочется понять удобные практики как это делают “взрослые дяди”.
Не знаю, кто такие “взрослые дяди”, но…

У нас до определённого момента велось 5 небольших проектов, на которых работало 2-5 человек, нам за глаза хватало 1-3 раза в день закидывать файлы вручную, никаких “неудобств” это не вызывало. А уж добавлять библиотеки зависимостей совсем редкий случай.
Сейчас у нас проект помасштабнее, на котором больше 10 человек, и тут уже настроили локальный GitLab, в котором настроили скрипты так: после Push автоматом выполняются тесты, затем, если они проходят без ошибок, обновляется сервер и перезапускается.
При этом часть парней у себя используют линукс, часть винду, по своим предпочтениям.
mc-black
Ребята, уважаемые эксперты, мне кажется вы (не все) поняли вопрос топикстартера. У меня он тоже возникал и кажется я получил ответ такой:

doza_and
1. Разработку крайне желательно вести на той ОС на которой будет применяться ПС.

Просто сам столкнулся с тем, что начал изучать Flask по туториалу Мигеля, при этом всю разработку-отладку вел в Windows. И мне интересно, сущетсвуют ли умные штуки, которые позволят “переформатировать” venv таким образом чтобы сохранить те же версии python и зависимостей, но заменить всё окружение на исполнимое в *nix-хостинге.

Правильно я понял, что такой халявы нет и надо было изначально вести разработку в linux, или в wsl под windows? В этом случае мне придется “пересоздать” venv в nix с установкой той же версии python и зависимостей. И практик получше нет?
doza_and
mc-black
Правильно я понял, что такой халявы нет
Не совсем правильно поняли.
У опытного разработчика обновление его пакета в питоне будет выглядеть одинаково.
типа pip3 install -U you_pack. С точки зрения питона полная халява, все одинаково даже никакой venv не требуется.
Но есть тонкости. Как вы будете останавливать и запускать службу? Да в windows и unix это делается разными способами.
Как вы запускаете приложение? в windows python some.py в unix python3 some.py
Разница в соглашениях о путях, в способах установки прав доступа, разница в кодировках, разница в установке UTC time,….. и т.д. и т.п.
Наконец требуются просто разные навыки при работе в разных ОС.
Если вы используете 2 разные ОС эта работа удваивается если 3 утраивается и т.д. Поэтому лучше использовать одну ОС, благо они не сильно отличаются по функционалу.
mc-black
Спасибо за разъяснения. Ну значит Linux второй системой на домашнем ноутбуке быть.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB