Найти - Пользователи
Полная версия: Распространение программ
Начало » Python для новичков » Распространение программ
1 2 3 4 5 6
FishHook
vanvanov
Я, например, использую pyinstaller

А можно узнать, что за программы и кто ву вас пользователи?
PEHDOM
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. Ну или как варинт нужные либы с собой иметь.
py.user.next
panama555
Есть ли у какого-нибудь из них удобный способ распространения?
Лучше задайся вопросом, как ты большинство программ устанавливаешь в свою винду, когда они тебе нужны, а в винде их нет изначально. Если ты заглянешь в директорию Program Files, ты очень удивишься, так как в каждой поддиректории там лежит куча разных файлов и далеко не исполняемых. И чтобы программа каждая работала, она должна лазить по своим этим файлам и директориям и брать оттуда информацию. Так откуда же все эти файлы и директории появились там?

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

Так что cx_Freeze тут вообще ни при чём.
vanvanov
FishHook
А можно узнать, что за программы и кто ву вас пользователи?
Вот моя страница на GitHub. 2 основных проекта (в публичном доступе) - mclient (оболочка для Мультитрана) и Yatube (просмотр/упорядочение видео с Youtube). Скажем сразу, мало кто пользуется (да я и мало где их упоминал, пишу для себя). Почти никто не жаловался на манеру распространения (exe в 7z, только у одной женщины как-то неправильно распаковалось). Но я уверен, что, если бы я распространял только исходники, то программу за полгода скачало бы не около 50-60 человек, как сейчас, а приблизительно ноль. Потому что люди привыкли к банальному “клацнуть на установщике -> далее -> далее”, а в случае с Питоном им придется:
1) установить интерпретатор;
2) скачать и распаковать исходники;
3) установить зависимости.
Сразу произойдет разрыв шаблона. Это похоже на то, как если бы человеку, которому потребовался LibreOffice, предложить не скачать вендосборку, а сначала установить убунту и делать в ней apt-get install.
vanvanov
PEHDOM
да фигня это все, почемуто установить dotNet, DX, JRE, VCR …надцати версий не проблема, а вот пайтон проблема?
Насколько знаю, дотнеты уже предустанавливаются в виндах, а там, где их нет, установщик обычно любезно предлагает их (и все остальное) скачать и доустановить (причем автоматически). Если отдельно скачать py или jar, тут знаний надо побольше, а лени - поменьше. Можно, конечно, весь питон запихнуть в приложение, но примерно так cx_freeze и делает.
FishHook
vanvanovу вас уже и так в зависимостях 7z, засуньте в самораспаковывающийся архив портабельный питон и все зависимые пакеты. Делается кликом мыши минуты за две. При этом можно ярлык на раб стол добавить и прочие удобства есть в комплекте. Не нужен тут никакой фриз.
vanvanov
FishHook
vanvanovу вас уже и так в зависимостях 7z
Ну это как временное решение (уже 5 лет ). Просто нормальный установщик лень было делать, тем более, что винду сам фактически не использую.
FishHook
засуньте в самораспаковывающийся архив портабельный питон и все зависимые пакеты. Делается кликом мыши минуты за две.
Как там дела с PATH? И что делать с исходниками?
FishHook
vanvanov
Как там дела с PATH? И что делать с исходниками?
При чем тут PATH? какие исходники имеются в виду?
py.user.next
vanvanov
Как там дела с PATH?
Никак. Для того и нужно нормальный установщик использовать, который кладёт внутрь дистрибутива-бинарника установочные скрипты, прописывающие программу в системе во всех местах, где это надо, - хоть в реестре, хоть на рабочем столе. Это происходит и в виндовых установщиках, и в линуксовых. Надо, чтобы в дистрибутиве были скрипты внутри и запускались при установке из этого бинарника.

Поэтому и cx_Freeze нафиг не нужен, так как это средство для новичков, у которых программки маленькие и которым достаточно одного файла или небольшой кучки скриптов, чтобы всё-всё-всё работало. В реальных проектах, которые делают какие-то ощутимые вещи, тебе кучки скриптов не хватит, и в системе они тоже не в одном месте лежат; могут взаимодействовать со службами системы или сами иметь какие-то части в виде служб, требующих предварительной регистрации. Тут одним экзешником, запускаемым из папки, не обойдёшься.
vanvanov
FishHook
При чем тут PATH?
Если программа не знает, где установлен Питон, откуда она будет производить импорт?
какие исходники имеются в виду?
Рабочей программы же. Как мне связать ее с переносным Питоном? Создать *.cmd? Но тогда, опять же, надо использовать умный установщик, который этот cmd и создаст (ибо программа может быть распакована куда угодно).
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