LINUX.ORG.RU

Как удобно поставлять (скриптовый) код для обычных пользователей

 


1

3

Иногда пишу программки/скрипты на заказ на Питоне, код отдаю в архиве с небольшой инструкцией, как установить Питон.

Бывает скрипты нужно дорабатывать и тогда такой подход превращается в какую-то неудобную возню с архивами, заменой файлов в архиве. Легко ошибиться, легко пропустить какой-то файл, или наоборот что-то лишнее поместить в архив.
У заказчика тоже копятся разные архивы, легко ошибиться.

Как удобнее поставлять код в таких случаях для нетехнических пользователей?

Немного уточню: основное затруднение возникает, когда заказчик сам точно не знает, что нужно и поэтому разработка происходит постепенно с постоянным добавлением и изменением функционала. Так же исправление багов.
На каждое изменение нужно отдавать новую версию программы.
Git слишком сложный для обычных пользователей. Вот сейчас смотрю gui-обёртки над Git, но тоже как-то не так уж просто. И интерфейс ещё нужен желательно на русском.


Напиши скрипт, который будет генерировать архив из текущей кодбазы. Тогда не надо заменять файлы в архиве, у тебя будет гарантированно архив со всеми свежими изменениями.

eternal_sorrow ★★★★★
()

я также пытался экспериментировать с различными сборщиками питоновских проектов в единый бинарник, который содержит в себе и интерпретатор питона и код моей скриптоты. Конкретно, pyinstaller, cx_freeze и также nuitka, который вообще обещает скомпилировать код питона в бинарный код. С каждым из них к меня возникли различные проблемы, но может тебе повезёт больше.

eternal_sorrow ★★★★★
()

Так же как и для других программ.

.deb/.msi/InnoSetup

Авто-обновление можно делать через apt-репозиторий или например через функционал программы установщика в Windows. Процесс обновления заключается в запуске установщика новой версии.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 5)

Возьми пример с них: https://github.com/yt-dlp/yt-dlp/releases/tag/2025.02.19

Они пакуют всё в один архив, а так же предлагают варианты где в том же архиве и сам питон сразу в виде исполняемого архива (для винды особенно актуально, но есть и для линукса). То есть надо скачать всего один файл и его сразу можно запускать. Единственный минус - версии с встроенным питоном весят 20-30мб (хотя yt-dlp_x86.exe почему-то всего 12мб) вместо 3-5мб если только скрипты (это у них, у тебя могут быть другие числа).

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 3)

Иногда пишу программки/скрипты на заказ на Питоне, код отдаю в архиве с небольшой инструкцией, как установить Питон.

Не могу себе представить вашего заказчика, только если вы не делаете на заказ контрольные студентам. У кого, когда, по какому поводу может возникнуть желание заказать питоний скрипт у фрилансера, при том что человек даже «сам точно не знает, что нужно»? Можете дать пример вашего заказа?

FishHook
()

Как удобнее поставлять код в таких случаях для нетехнических пользователей?

Искользовать Git хостинг у которого есть кнопка «Скачать репозиторий в виде архива». У того же Гитхаба есть Releases.
Или использовать Гит у себя а клиенту отдавать свежую версию, делая архив из репозитория.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

Чтобы дать заказчику кнопку «скачать», гит-хостинг не требуется. Собственно гит заказчику скорее всего вообще не интересен, ему нужна только ссылка на скачивание.

firkax ★★★★★
()

дурной вариант fossil: форум + wiki, чат, багтрекер. Сам контроль версий можно не использовать если к git привык ну очень удобно что всё в одном файле

s-warus ★★★★
()
Ответ на: комментарий от urxvt

А вот это похоже - офигенный совет.
Я только что попробовал и это похоже удобно. Ведёшь гит-репозиторий у себя, пушишь куда-нибудь на, можно приватный, гитхаб, и когда нужно отдать архив, то просто скачиваешь. Там даже ссылка на скачивание постоянная будет.
А в архиве автоматом будут только отслеживаемые файлы.
Как просто.

Ещё один полезный совет про пример с yt-dlp, но там разбираться надо, хотя тоже вроде пригодиться может.

Советы про докер очень странные. Я делал скрипты для людей для которых 10-15 раз (серьёзно) нажать «Далее» при установке Git на Windows - кажется очень сложным.

vvvv
() автор топика
Ответ на: комментарий от dmitry237

В современной Windows очень просто установить Питон. Даже на сайт Питона заходить не надо.
Через этот ихний магазин приложений очень легко ставится.
Можно в cmd написать python, и если он не установлен, то автоматически запускается магазин приложений с большущей кнопкой «СКАЧАТЬ». Кнопку только нажать надо 1 раз! Больше ничего делать не надо.

Затем можно создать ярлык, указать путь ярлыка к скрипту .py. И при клике на ярлык, всё работает!

vvvv
() автор топика

Я делал просто программу-контейнер сразу с питоном и всеми нужными модулями и в название добавлял версию. Клиент скачал, запустил и вперёд. Можно сделать авто обновление.

usermod
()

Вот сейчас смотрю gui-обёртки над Git, но тоже как-то не так уж просто.

Найди git обертку где можно выгружать любую ветку в архив, сам разрабатывай в git а заказчикам отдавай архивы. Тем кто посмышленее можешь и просто ссылку на git давать

Kolins ★★★★★
()
Ответ на: комментарий от usermod

И заказчик будет платит миллиард денег за индивидуальный софт.

Все имеет свою цену, скрипт не может столько стоить, значит заказчик найдет другого, адекватного, исполнителя. Который напишет под ОС *.js, *.wsf, *.vbs, *.ps1, да хоть .Net приложение.

dmitry237 ★★★★★
()

Я в шоке от профдеформации всех, кто тут отписывается. Так и хочется спросить: да что ж вы такое несете вообще?

Я тоже регулярно работаю с пользователями и лучшее, что можно сделать - дать им готовый бинарник для выполнения. Для винды - собрать exe файл, например.

pyinstaller.exe -F -w --onefile --icon=/home/diver/Games/wc/CircleL/Interface/AddOns/NSQC/emblem.ico CircleUpdaterB.py

Какая к хренам работа с гитом для пользователей? Если что то надо скачать - пакуешь скачку все в тот же бинарник автоматом.

Пользователь в идеале должен просто кликнуть файл и все работает. Чем больше инструкций и движений, тем хуже.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от dmitry237

Нахрена переписывать? Питон универсален блин. Собираешь бинарник готовый и работай. Я пишу обычно на линуксе нужное, собираю потом куда надо в бинарник и все. Используют практически всегда потом на винде.

Гляньте вон возможности гитхаба по сборке. Создаешь сборочный файл с нужными платформами и при коммите он сам вам соберет все нуженое на все нужные платформы.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от dmitry237

Так и не надо ничего ставить, я к тому и веду. В бинарнике уже все будет.

Главное продумать где будет использоваться. Если это винда - то нужно учесть ретроградов на седьмой и использовать 3.8.6 питон. Выше там не работает. А так - все решаем, все просто.

Главное помнить, что юзер - всегда дебил. И ему надо максимально коротко и ясно. Желательно в один клик.

Я однажды задолбался объяснять и составлять инструкции по установке аддонов в игре и написал для них установщик и обновлятор аддонов. С тех пор все проблемы решились. Кликают установщик, галочки нужные поставили - красота.

Если же в твоей инстркции что то еще и устанавливать надо - это совсем беда. Минус 95% пользователей разом.

LightDiver ★★★★★
()

Слушай, а подумай о своем установщике всякого нужного. Очень удобная штука получается.

Пользователь запускает установщик, а тот сам скачивает откуда тебе надо все что надо, скидывает куда надо. От пользователя не нуно ничего. Никаких инструкций и прочего.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

что то еще и устанавливать надо - это совсем беда

Я об этом изначально и спросил. Просто один раз столкнулся, когда жену по работе обязали установить питон, я и сам не в зуб, а тут такое. Кое как разобрались, но там что-то еще было, для чего собственно и сам питон. А она меня буквально задолбала, помню начали с урока открытия консоли и запуска в интерактивном режиме (REPL). Правда потом она, нашла другую работу, а питон благополучно удалила.

dmitry237 ★★★★★
()

Во-первых, надо собирать новый архив на каждую версию, которую собираешься отдать.

Во-вторых, самое важное, не используй модули, которые не входят в стандартную поставку питона.

ya-betmen ★★★★★
()
Ответ на: комментарий от usermod

ей надо было мужа удалить.

Это если бы сошлись на почве питона. Но то была другая технологическая эпоха, аналоговая. Да и поздно уже после 35 лет супружества.

dmitry237 ★★★★★
()
Ответ на: комментарий от firkax

https://github.com/yt-dlp/yt-dlp/blob/master/.github/workflows/build.yml#L400

там ненавистный тебе докер все это делает. но ты за столько лет не осилил самый простой и быстрый способ установки через pip/pipx install

rtxtxtrx ★★★
()
Ответ на: комментарий от rtxtxtrx

Докер там если и есть, то в виде обёртки. Да, вероятно они выбрали не самый лучший способ собирать бинарник, но речь была не про детали их реализации а про саму идею засунуть всё в исполняемый файл, чтобы не страдать от питонопроблем.

но ты за столько лет не осилил самый простой и быстрый способ установки через pip/pipx install

Чего? Ты вопрос автора темы читал? Автор темы не спрашивает, как ему установить yt-dlp, он спрашивает, как удобнее распространять питонопрогу для не совсем компенетного заказчика.

Что касается меня, то статические бинарники с питоном внутри я не использую, я использую обычный, запускающийся системным питоном. И wget, разумеется, намного проще и прозрачнее чем мусорный pip. Не говоря уж о том, что yt-dlp надо патчить после скачивания, так что pip тем более идёт мимо.

firkax ★★★★★
()
Ответ на: комментарий от LightDiver

скрипты запускаются на серваке. он скорее всего какую парашу для датасасаентистов пишет, а потому твой способ не уместен, docker хорош тем, что требуется лишь поправить конфиги и выполнить одну команду, а вот с pip публиковать такое нельзя в pypi по понятным причинам, а вот wheel можно собрать, те из файла пакет поставить. дебники вообще какие-то сумасшедшие собирают

rtxtxtrx ★★★
()
Ответ на: комментарий от rtxtxtrx

Гитхаб теперь не только лишь для всех. Вон мне пришло требование двухфакторной авторизации. Как его без смартфона подключить? Вообще привязываться к одному онлайновому сервису - тако себе, пришлось на мосхаб окончательно переползать.

LightDiver ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Так это уже для специалистов. При чем тут тогда инструкции? Для специалистов кинул скрипт, они и так знают что с ним делать.

Я рассуждал о работе с пользователями.

LightDiver ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Тебе надо - ты и создавай. А у меня всё работает и без пуллреквестов, проблем я не испытывая. Региться на этой помойке (гитхаб) не собираюсь.

А вообще пуллреквест там кто-то создавал но его так и не применили, за это время он успел стать неактуальным и теперь другая версия патча. Тема на лоре: патч 2024-11-04, новый патч 2025-01-04, новый патч 2025-01-26. Кто-то первую версию патча прислал им в пулл-реквест 2024-12-26, его успешно игнорили и в итоге он стал уже неактуален и автор пулл-реквеста его закрыл.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Не о требованиях надо думать а о том, что гитхаб - мало того что зловредный монополист, так ещё и с некоторых пор подразделение идеологически вражеской (non-free) компании микрософт.

firkax ★★★★★
()

Как удобнее поставлять код в таких случаях для нетехнических пользователей?

Удобнее всего код паковать в штатные системные пакеты: rpm, deb или что там ещё и размещать эти пакеты в репозитории, доступном по сети. В этом случае твой скрипт ставится так же, как и весь остальной софт, питон подтягивается по зависимостям и устанавливается автоматом.

При исправлении бага выпускаешь новую версию, штатный менеждер пакетов увидит обновление, дальше всё стандартно.

debugger ★★★★★
()