|
6 / 4 / 1
Регистрация: 28.09.2016
Сообщений: 223
|
|
Распространение программ24.01.2020, 13:01. Показов 10741. Ответов 21
Метки нет (Все метки)
Привет!
Подскажите правильный способ распространения питоновских программ. Вчера хотел брату кинуть программу на питоне для пробы. Но у него питон не установлен и, тем более, дополнительные библиотеки. Он в этом не очень разбирается. Возник вопрос, как с минимальными временными затратами распространять питоновские программы? Может быть есть какой-нибудь автоматический модуль инсталляции питона и необходимых библиотек? Спасибо
0
|
|
| 24.01.2020, 13:01 | |
|
Ответы с готовыми решениями:
21
Распространение вируса 2 Распространение программы на Python Распространение бинарных библиотек с зависимостями |
|
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
|
|
| 24.01.2020, 21:19 | |
|
pyinstaller, например, еще можно скачать embeddable и установить туда нужные библиотеки
0
|
|
|
|
|||||||
| 25.01.2020, 17:06 | |||||||
|
Свой собственный скрипт нужно превращать в дистрибутивный пакет формата whl, который должен знать о зависимостях(прописывается в setup.py). Его дальнейшая установка не сложнее установки любой другой программы. batch файл
0
|
|||||||
|
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
|
|||
| 25.01.2020, 23:48 | |||
|
0
|
|||
|
|
|||||||||||||||||
| 26.01.2020, 16:50 | |||||||||||||||||
|
Готовый пакет формата whl это обычный zip файл, который можно открыть любым архиватором, если изменить его расширение на .zip. Он будет содержать ваш скрипт\пакет, каталог с файлами метаданных. Скрипт создания пакета whl setup.py должны написать самостоятельно и затем выполнить команду создания whl пакета:
-d wheel это ваш каталог (заранее созданный), в котором и будет создан файл .whl. Добавлено через 2 минуты Пример setup.py
P.S. В файле setup.py можно прописать дополнительную команду (entry_points), которая при установке клиентом вашего пакета создаст специальный файл вида имя_скрипта.exe в каталоге Python\Scripts Таким образом клиент сможет запускать ваш скрипт как обычный exe файл. P.P.S. Пример такого файла - pip.exe, который является всего лишь лаунчером для запуска модуля pip. В каталоге Scripts на самом деле есть много таких файлов, которые появлятся там после установки модулей. Каждый из них - это простой способ запуска модуля как exe файла из cmd.
1
|
|||||||||||||||||
|
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
|
||
| 26.01.2020, 17:46 | ||
|
Добавлено через 5 минут Батник, whl или zip и python3.exe, правильно я понял? Т.е. по сути батник запускает pip команды для установки зависимостей пакета. Особого смысла не вижу в данных действиях без установки автоматом самого пайтона. Если пользователь не может установить пайтон пакет зачем ему ещё один? Добавлено через 2 минуты На винде, что еще потребуется при распаковке и установке всего приложения?
0
|
||
|
|
||||
| 26.01.2020, 18:18 | ||||
|
Да, и вообще профессиональные Python программы пишутся не для обычных юзеров. Добавлено через 4 минуты P.S. На линуксах Python уже предстустанолвен. И предполагается, что большинство Python программ изначально предназначены для работы на линукс серверах.
1
|
||||
|
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
|
|
| 26.01.2020, 18:22 | |
|
0
|
|
|
|
||
| 26.01.2020, 18:30 | ||
|
Остальные 0,1 % это как правило какие-нибудь недокалькуляторы на ткинтере или игрушки типа "змейки", которыми начинающие хотят похвастаться перед друзьями,у которых на компе - винда.
0
|
||
|
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
|
|||
| 26.01.2020, 18:47 | |||
|
0
|
|||
|
|
|||
| 26.01.2020, 19:57 | |||
|
Спросите себя какую программу на Python знают обычные пользователи? Ответ: никакую. Когда-то был такой аналог uTorrent - BitTorrent, он был написан на Python. Потом его переписали на С++. Редакторы Blender и GIMP используют python для внутреннего скриптинга. Python как сценарный язык используется в некоторых широкоизвестных играх. Но это уже нечто другое, нежели программа на Python. Программы же с GUI интерфейсом, которые используются обычными юзерами, написаны на комплируемых языках. Python это язык для написания серверных программ. Это его базовая ниша. Либо - научно-инженерные вычисления. Все остальное, тем более "гуевое" - просто баловство, в промышленном секторе невостребованное. И при всем этом - Python, 3-ий по встребованности язык программирования в мире. Есть соответствующий рейтинг. Делайте выводы. Меня, например, гуй никогда не интересовал, поэтому мои поисковые запросы приводили меня совсем к другим результатам.
0
|
|||
|
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
|
||
| 26.01.2020, 20:28 | ||
|
Добавлено через 2 минуты Обычному пользователю, необходим конечный продукт,а его мало интересует какими средствами он выполнен. Это уже задача менеджера проекта.
0
|
||
|
|
||||
| 26.01.2020, 21:02 | ||||
|
Потому что он не идиот. И скорей всего понимает, что у каждого типа программ есть свои нишевые ЯП. Точно также никто не будет писать сайт на ... С++. Максимум на Go. Но как правило будет выбор между PHP и Python. Добавлено через 5 минут
0
|
||||
|
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
|
||
| 26.01.2020, 21:40 | ||
|
0
|
||
|
|
||
| 26.01.2020, 22:03 | ||
|
Сайт\web-сервис - это и есть программа на Python. Сотни тысяч сайтов написаны на Python. Где же тут фантазии? Сейчас даже крупные программы, которые обычно устанавливались на компьютер пользователя, уже имеют web версии. Есть, например, онлайн-фотошоп. Есть тысячи других web-сервисов, которые заменяют пользователю программу, требующую установки на компьютер. Программы, которые нужно устанавливать на комп скоро исчезнут... вообще... за ненадобностью. Ибо все будет доступно в интернете в виде сервиса. У меня на компе стоит PDF конвертер, но не помню уже когда я его запускал в последний раз. Файлы я давно конвертирую через web сервисы. И таких примеров - сотни и тысячи. 21 век - век интернета, и он давно наступил... Вы живите прошлым.
0
|
||
|
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
|
||
| 26.01.2020, 22:06 | ||
|
Этот процесс физически не осуществим. Между реальными объектами и теоретическим конструктом лежит бесконечность. Чтобы осуществилось то что Вы пишите, человек должен перестать существовать как вид в биологическом понятии этого слова. Это не возможно Добавлено через 1 минуту Вы питаетесь иллюзиями созданным более превелегированным обществом, вот и все. Добавлено через 39 секунд Вы идете в никуда...
0
|
||
|
|
|
| 26.01.2020, 22:55 | |
|
Вы какую-то философическую чушь написали (да и еще безграмотно; да, кстати, в философии я разбираюсь если что). Я вам про Фому, вы - про Ерему.
Видно, что вы далеки от мира программирования и что-то объяснять бесполезно.
0
|
|
|
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
|
|
| 26.01.2020, 23:58 | |
|
0
|
|
|
6 / 4 / 1
Регистрация: 28.09.2016
Сообщений: 223
|
|
| 27.01.2020, 14:14 [ТС] | |
|
Когда я спрашивал: “как упростить распространение программ питона?”, я не имел ввиду: “Как получить один exe-файл?”
Я понимаю, что если бы это было “правильно”, то это сделали бы сами разработчики питона. Я понимаю, что правильно располагать части программы в различных файлах и папках. Но этим не должен заниматься пользователь, который хочет использовать эту программу. Пользователь должен увидеть какой-то файл для запуска установки, кликнуть по нему и может быть ответить на несколько вопросов, связанных с установкой. Созданием файлов должен заниматься разработчик, т.е. я (в данном случае) После всей полемики мой вопрос можно перефразировать: “Как создать этот установочный файл(файлы)?” К сожаления, в сети не смог найти понятную (русскоязычную) инструкцию по этой теме. Надеюсь, что кто-то сможет описать способ создания “пакета для распространения” (именно для начинающих)
0
|
|
|
|
||||
| 27.01.2020, 17:57 | ||||
|
Хотя, конечно, можно обойтись и созданием самораспаковывающегося архива (rar.sfx), если понимать как правильно прописать команды установки. Но понятие пакет не включает в себя интепретатор и все встроенные библиотеки. Пакет это то, что вы качаете с репозитория pypi командной pip install модуль. И это - самый что ни на есть стандартный и описанный в документации способ распространения программных модулей на Python. Все прочее - за пределами официальной документации; в том числе и сборщики типа pyinstaller или Cx_Freeze, которые, разумеется, иногда упрощают создание простых дистрибутивов, но, работа с ними нередко оказывается проблемной при сборке сложноорганизованных модулей. Добавлено через 2 часа 47 минут ------------------------------------------------------------------ Другой способ передачи программы (без упаковки каким-нибудь инсталлятором интерпретатора+либы+скрипт в один файл) заключается в использовании emdeddable сборок Python, которые есть на оффсайте. Скачиваем, устанавливаем (после некоторых манипуляций) туда все нужные библиотеки + наш модуль\пакет (его нужно превратить в стандартный whl) и отдаем этот каталог клиенту, который он волен запихнуть куда хочет. Для запуска программы пишем пользователю батник или объясняем как сделать ярлык на лаунчер скрипта из папки Scripts. Лаунчер скрипта создается при установке скрипта из whl пакета с опцией entry_points в setup.py. Как создавать whl c такой опцией написано в доках по setuptools (англ. - гугл транслейт в помошь).
0
|
||||
| 27.01.2020, 17:57 | |
|
Помогаю со студенческими работами здесь
20
Распространение программ
Распространение
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|