Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 26, 2020 17:09:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8045
Репутация: +  559  -
Профиль   Отправить e-mail  

Распространение программ

vanvanov
Я, например, использую pyinstaller

А можно узнать, что за программы и кто ву вас пользователи?



Офлайн

#2 Янв. 26, 2020 17:25:42

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Распространение программ

panama555
Я имею ввиду интерпретируемые языки.
Есть ли у какого-нибудь из них удобный способ распространения?
Или это общая проблема?
Да никаких проблем нет вообще, даже у пайтона, давайте для примера возьмем java. Он конечно не совсем интерпретируемый ЯП, но без виртуальной Java-машины куй что заработает, так что ситуация практически идентичная. Что сразц приходит в голову? Minecraft и PyCharm. И как, нормально они распространяються? Вполне себе. Скачиваете инсталятор/архив с сайта программы (мы же про виндовс), распаковываете/инсталируете, запускаете екзешник. Наслаждаетесь.
Посмотрите как они устроены. После установки есть куча папок с кучей jar файлов + какието ресурсы(иконки, текстурки, курсоры, звуки и тд…)+ екзешник для запуска, который являеться простым лаунчером. Его задача запустить нужный jar файл в виртуальной Java-машине.
Как они преодолевают небходимость устанавливать какието библиотеки? Да никак, все нужные библиотеки у них с собой, в отдельной папочке, лаунчер просто при запуске меняет переменные окружения так чтобы все нужные либы сначала искались в “отдельной папочке”, а уже потом по всем остальным путям.
Как они преодолевают небходимость устанавливать JRE? Тут каждый по своему.В майкрафте кажись, оно просто говорит:“чувак мне нужно JRE, установи и будет тебе счастье”. PyCharm, как и многие программы написаные на джаве, не мудрствуя, просто таскают JRE с собой, и лаунчер “заранее” знает где лежит JRE.
pyInstaller вполне годная тема для начала, покуда ваши программы небольшие, а там можно и пайтн свой таскать как жаба-программы, или в инсталятор прописать проверку на наличия пайтона, и установку по необходимости, тут уж как посчитаете нужным. Я както адварь видел, на пайтоне написаную, так она свой пайтон притащила и положила кудато в temp, чтобы запускаться могла. Правда адварь на пайтоне так себе, python.exe в процессах сильно демаскирует.

vanvanov
мало кто из пользователей решится установить python и еще потом делать pip install для десятка зависимостей
да фигня это все, почемуто установить dotNet, DX, JRE, VCR …надцати версий не проблема, а вот пайтон проблема? а десяток зависимостей лечиться через requirements.txt. Ну или как варинт нужные либы с собой иметь.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 26, 2020 17:55:32)

Офлайн

#3 Янв. 26, 2020 17:26:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 8451
Репутация: +  759  -
Профиль   Отправить e-mail  

Распространение программ

panama555
Есть ли у какого-нибудь из них удобный способ распространения?
Лучше задайся вопросом, как ты большинство программ устанавливаешь в свою винду, когда они тебе нужны, а в винде их нет изначально. Если ты заглянешь в директорию Program Files, ты очень удивишься, так как в каждой поддиректории там лежит куча разных файлов и далеко не исполняемых. И чтобы программа каждая работала, она должна лазить по своим этим файлам и директориям и брать оттуда информацию. Так откуда же все эти файлы и директории появились там?

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

Так что cx_Freeze тут вообще ни при чём.



Отредактировано py.user.next (Янв. 26, 2020 17:29:04)

Офлайн

#4 Янв. 26, 2020 18:03:49

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 251
Репутация: +  4  -
Профиль   Отправить e-mail  

Распространение программ

FishHook
А можно узнать, что за программы и кто ву вас пользователи?
Вот моя страница на GitHub. 2 основных проекта (в публичном доступе) - mclient (оболочка для Мультитрана) и Yatube (просмотр/упорядочение видео с Youtube). Скажем сразу, мало кто пользуется (да я и мало где их упоминал, пишу для себя). Почти никто не жаловался на манеру распространения (exe в 7z, только у одной женщины как-то неправильно распаковалось). Но я уверен, что, если бы я распространял только исходники, то программу за полгода скачало бы не около 50-60 человек, как сейчас, а приблизительно ноль. Потому что люди привыкли к банальному “клацнуть на установщике -> далее -> далее”, а в случае с Питоном им придется:
1) установить интерпретатор;
2) скачать и распаковать исходники;
3) установить зависимости.
Сразу произойдет разрыв шаблона. Это похоже на то, как если бы человеку, которому потребовался LibreOffice, предложить не скачать вендосборку, а сначала установить убунту и делать в ней apt-get install.

Офлайн

#5 Янв. 26, 2020 18:13:49

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 251
Репутация: +  4  -
Профиль   Отправить e-mail  

Распространение программ

PEHDOM
да фигня это все, почемуто установить dotNet, DX, JRE, VCR …надцати версий не проблема, а вот пайтон проблема?
Насколько знаю, дотнеты уже предустанавливаются в виндах, а там, где их нет, установщик обычно любезно предлагает их (и все остальное) скачать и доустановить (причем автоматически). Если отдельно скачать py или jar, тут знаний надо побольше, а лени - поменьше. Можно, конечно, весь питон запихнуть в приложение, но примерно так cx_freeze и делает.

Отредактировано vanvanov (Янв. 26, 2020 18:16:05)

Офлайн

#6 Янв. 26, 2020 18:35:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8045
Репутация: +  559  -
Профиль   Отправить e-mail  

Распространение программ

vanvanovу вас уже и так в зависимостях 7z, засуньте в самораспаковывающийся архив портабельный питон и все зависимые пакеты. Делается кликом мыши минуты за две. При этом можно ярлык на раб стол добавить и прочие удобства есть в комплекте. Не нужен тут никакой фриз.



Офлайн

#7 Янв. 26, 2020 19:29:07

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 251
Репутация: +  4  -
Профиль   Отправить e-mail  

Распространение программ

FishHook
vanvanovу вас уже и так в зависимостях 7z
Ну это как временное решение (уже 5 лет ). Просто нормальный установщик лень было делать, тем более, что винду сам фактически не использую.
FishHook
засуньте в самораспаковывающийся архив портабельный питон и все зависимые пакеты. Делается кликом мыши минуты за две.
Как там дела с PATH? И что делать с исходниками?

Офлайн

#8 Янв. 26, 2020 19:52:24

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8045
Репутация: +  559  -
Профиль   Отправить e-mail  

Распространение программ

vanvanov
Как там дела с PATH? И что делать с исходниками?
При чем тут PATH? какие исходники имеются в виду?



Офлайн

#9 Янв. 27, 2020 01:57:21

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 8451
Репутация: +  759  -
Профиль   Отправить e-mail  

Распространение программ

vanvanov
Как там дела с PATH?
Никак. Для того и нужно нормальный установщик использовать, который кладёт внутрь дистрибутива-бинарника установочные скрипты, прописывающие программу в системе во всех местах, где это надо, - хоть в реестре, хоть на рабочем столе. Это происходит и в виндовых установщиках, и в линуксовых. Надо, чтобы в дистрибутиве были скрипты внутри и запускались при установке из этого бинарника.

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



Отредактировано py.user.next (Янв. 27, 2020 02:00:06)

Офлайн

#10 Янв. 27, 2020 04:16:25

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 251
Репутация: +  4  -
Профиль   Отправить e-mail  

Распространение программ

FishHook
При чем тут PATH?
Если программа не знает, где установлен Питон, откуда она будет производить импорт?
какие исходники имеются в виду?
Рабочей программы же. Как мне связать ее с переносным Питоном? Создать *.cmd? Но тогда, опять же, надо использовать умный установщик, который этот cmd и создаст (ибо программа может быть распакована куда угодно).

Отредактировано vanvanov (Янв. 27, 2020 04:23:33)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version