Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/55: Рейтинг темы: голосов - 55, средняя оценка - 4.85
6 / 4 / 1
Регистрация: 28.09.2016
Сообщений: 223

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

24.01.2020, 13:01. Показов 10741. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Подскажите правильный способ распространения питоновских программ.
Вчера хотел брату кинуть программу на питоне для пробы.
Но у него питон не установлен и, тем более, дополнительные библиотеки.
Он в этом не очень разбирается.
Возник вопрос, как с минимальными временными затратами распространять питоновские программы?
Может быть есть какой-нибудь автоматический модуль инсталляции питона и необходимых библиотек?
Спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2020, 13:01
Ответы с готовыми решениями:

Распространение вируса 2
Владимир Петрович преподает в классе, в котором учатся n детей. Недавно ему поступило сообщение о том, что в один из его учеников заболел...

Распространение программы на Python
Всем доброго времени суток. У меня такой вопрос. Есть программка на Python, которая использует сторонние модули(и родные само собой). Можно...

Распространение бинарных библиотек с зависимостями
Как правильно организовывать процесс? Вот я собрал модуль с бинарным расширением. Расширение компилируется с зависимостями от...

21
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
24.01.2020, 21:19
pyinstaller, например, еще можно скачать embeddable и установить туда нужные библиотеки
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
25.01.2020, 17:06
Цитата Сообщение от pumaex Посмотреть сообщение
автоматический модуль инсталляции питона
Инсталлятор Python c офсайта не сложнее любой другой программы.
Свой собственный скрипт нужно превращать в дистрибутивный пакет формата whl, который должен знать о зависимостях(прописывается в setup.py).
Его дальнейшая установка не сложнее установки любой другой программы.
batch файл
Windows Batch file
1
pip install ваш_пакет.whl
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
25.01.2020, 23:48
Цитата Сообщение от Garry Galler Посмотреть сообщение
дистрибутивный пакет формата whl
Garry Galler, расскажите пожалуйста более подробно о формате whl, необходимых модулях для "превращения" скриптов и приведите всю информацию на простейшем примере если это возможно. Или посоветуйте, что прочитать, загуглить и т.д.
Цитата Сообщение от Garry Galler Посмотреть сообщение
batch файл
Пакетные или batch файлы это обычные текстовые файлы, содержащие наборы команд интерпретатора и имеющие расширение bat или cmd.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.01.2020, 16:50
Цитата Сообщение от AlexMarkov Посмотреть сообщение
более подробно о формате whl
Нужно почитать документацию по setuptools. Это специальный пакет для создания своих собственных пакетов распространения Python программ.
Готовый пакет формата whl это обычный zip файл, который можно открыть любым архиватором, если изменить его расширение на .zip. Он будет содержать ваш скрипт\пакет, каталог с файлами метаданных.
Скрипт создания пакета whl setup.py должны написать самостоятельно и затем выполнить команду создания whl пакета:
Windows Batch file
1
python setup.py bdist_wheel -d wheel
в вашего каталоге скрипта\модуля\пакета
-d wheel это ваш каталог (заранее созданный), в котором и будет создан файл .whl.

Добавлено через 2 минуты
Пример setup.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from setuptools import setup
 
setup(name = 'grabber',
      version = '1.0',
      author = 'Garry Galler',
      author_email = 'ggaller@mail.ru',
      license = 'MIT',
      keywords = 'grabber scraping',
      py_modules = ['grabber'],
      install_requires = ['requests',
                        'lxml',
                        'cssselect',
                        'dataset',
                        'colorama',
                        'progressbar2',
                        'pywin32',
                        'win_unicode_console;python_version<"3.6"'
                        ]
      )
Установка готового пакета производится через pip, который может не только загружать пакеты из интернет репозитория, но и устанавливать их непосредственно из локального месторасположения:
Windows Batch file
1
pip install grabber-1.1.2-py3-none-any.whl
Вот так я устанавливаю свой собственный пакет. Точно также его может установить любой клиент, которому я передаю свою программу в этом формате. Команду можно написать в батнике, пакет положить рядом, таким образом один клик по батнику и пакет будет установлен вместе со всеми зависимостями.
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
Цитата Сообщение от Garry Galler Посмотреть сообщение
Установка готового пакета производится через pip
Инсталлятор python идет приложением клиенту к zip или whl файлу? Т.е. установка самого пайтона - необходимость? Если да, можно создать файл с msi расширением на винду с инсталятором python? Или есть другие способы выхода из данной ситуации?

Добавлено через 5 минут
Батник, whl или zip и python3.exe, правильно я понял? Т.е. по сути батник запускает pip команды для установки зависимостей пакета. Особого смысла не вижу в данных действиях без установки автоматом самого пайтона. Если пользователь не может установить пайтон пакет зачем ему ещё один?

Добавлено через 2 минуты
На винде, что еще потребуется при распаковке и установке всего приложения?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.01.2020, 18:18
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Т.е. установка самого пайтона - необходимость?
Естественно. Вы же модули с pypi репозитория устанавливаете не на голую машину.
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Если пользователь не может установить пайтон пакет зачем ему ещё один?
Установка Python производится в пару кликов.
Да, и вообще профессиональные Python программы пишутся не для обычных юзеров.

Цитата Сообщение от AlexMarkov Посмотреть сообщение
можно создать файл с msi расширением на винду с инсталятором python?
Если очень хочется, создавайте. Толко к Python и пакетам распространения это отношения уже не имеет.

Добавлено через 4 минуты
P.S. На линуксах Python уже предстустанолвен.
И предполагается, что большинство Python программ изначально предназначены для работы на линукс серверах.
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
26.01.2020, 18:22
Цитата Сообщение от Garry Galler Посмотреть сообщение
большинство Python программ изначально предназначены для работы на линукс серверах
не сервером единым ....
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.01.2020, 18:30
Цитата Сообщение от AlexMarkov Посмотреть сообщение
не сервером единым ...
99,9% всех программ на Python находятся именно там.
Остальные 0,1 % это как правило какие-нибудь недокалькуляторы на ткинтере или игрушки типа "змейки", которыми начинающие хотят похвастаться перед друзьями,у которых на компе - винда.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
26.01.2020, 18:47
Цитата Сообщение от Garry Galler Посмотреть сообщение
99,9% всех программ на Python находятся именно там.
субъективная точка зрения...
Цитата Сообщение от Garry Galler Посмотреть сообщение
Остальные 0,1 % это как правило какие-нибудь недокалькуляторы на ткинтере или игрушки типа "змейки", которыми начинающие хотят похвастаться перед друзьями,у которых на компе - винда.
у недокалькуляторов и игрушек, также своя роль при изучении программирования. А проблема однообразия предоставляемого материала в виде калькулятора и игрушек создана крупными компаниями поисковых систем, где первый результат поиска именно такой...который...как известно и осуществляется на серверах....
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.01.2020, 19:57
Цитата Сообщение от AlexMarkov Посмотреть сообщение
субъективная точка зрения...
Нет. Можете проверить.
Спросите себя какую программу на Python знают обычные пользователи?
Ответ: никакую. Когда-то был такой аналог uTorrent - BitTorrent, он был написан на Python. Потом его переписали на С++.
Редакторы Blender и GIMP используют python для внутреннего скриптинга.
Python как сценарный язык используется в некоторых широкоизвестных играх. Но это уже нечто другое, нежели программа на Python.

Программы же с GUI интерфейсом, которые используются обычными юзерами, написаны на комплируемых языках.
Python это язык для написания серверных программ. Это его базовая ниша. Либо - научно-инженерные вычисления.
Все остальное, тем более "гуевое" - просто баловство, в промышленном секторе невостребованное.

И при всем этом - Python, 3-ий по встребованности язык программирования в мире. Есть соответствующий рейтинг.
Делайте выводы.

Цитата Сообщение от AlexMarkov Посмотреть сообщение
создана крупными компаниями поисковых систем
Они тут не причем. Или вы не понимаете как работает поиск.
Меня, например, гуй никогда не интересовал, поэтому мои поисковые запросы приводили меня совсем к другим результатам.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
26.01.2020, 20:28
Цитата Сообщение от Garry Galler Посмотреть сообщение
Спросите себя какую программу на Python знают обычные пользователи?
Программисту, должно нравиться то что он делает,а за всеми бежать свое потеряешь.

Добавлено через 2 минуты
Обычному пользователю, необходим конечный продукт,а его мало интересует какими средствами он выполнен. Это уже задача менеджера проекта.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.01.2020, 21:02
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Обычному пользователю, необходим конечный продукт,а его мало интересует какими средствами он выполнен
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Это уже задача менеджера проекта
Верно. И хороший менджер никогда не скажет "коллеги, давайте запилим убийцу Фотошопа (новый браузер, текстовый редактор, viewer изображений и т.п.) на ... Python".
Потому что он не идиот. И скорей всего понимает, что у каждого типа программ есть свои нишевые ЯП.
Точно также никто не будет писать сайт на ... С++. Максимум на Go. Но как правило будет выбор между PHP и Python.

Добавлено через 5 минут
Цитата Сообщение от AlexMarkov Посмотреть сообщение
должно нравиться то что он делает,
Если оно бесполезно, то это не лучший выбор того что нравится.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
26.01.2020, 21:40
Цитата Сообщение от Garry Galler Посмотреть сообщение
новый браузер, текстовый редактор, viewer изображений и т.п.
Для решения повседневных прикладных задач, в которых не участвуют несколько сотен разработчиков, программистов, дизайнеров, врайтеров ... данный вид GUI очень даже в дело, а ваши облачные фантазии без реализации в реальности просто слова. Слова принадлежат мгновению, дела вечности. Тысячи дорогостоящих, недоступных для обычного пользователя проектов, для кого? Для того кто на вершине холма....?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.01.2020, 22:03
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Тысячи дорогостоящих, недоступных для обычного пользователя проектов
Они то как раз доступны обычному массовому пользователю. В отличие от никому неизвестных Python программ с GUI.
Сайт\web-сервис - это и есть программа на Python. Сотни тысяч сайтов написаны на Python. Где же тут фантазии?
Сейчас даже крупные программы, которые обычно устанавливались на компьютер пользователя, уже имеют web версии.
Есть, например, онлайн-фотошоп. Есть тысячи других web-сервисов, которые заменяют пользователю программу, требующую установки на компьютер.
Программы, которые нужно устанавливать на комп скоро исчезнут... вообще... за ненадобностью. Ибо все будет доступно в интернете в виде сервиса.
У меня на компе стоит PDF конвертер, но не помню уже когда я его запускал в последний раз. Файлы я давно конвертирую через web сервисы.
И таких примеров - сотни и тысячи.
21 век - век интернета, и он давно наступил... Вы живите прошлым.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
26.01.2020, 22:06
Цитата Сообщение от Garry Galler Посмотреть сообщение
Программы, которые нужно устанавливать на комп скоро исчезнут... вообще... за ненадобностью. Ибо все будет доступно в интернете. 21 век давно наступил...
Идеализация - одно или несколько условий влияющих на результат, мысленно постепенно уменьшают колличественно, пока оно не исчезнет.
Этот процесс физически не осуществим.
Между реальными объектами и теоретическим конструктом лежит бесконечность.

Чтобы осуществилось то что Вы пишите, человек должен перестать существовать как вид в биологическом понятии этого слова. Это не возможно

Добавлено через 1 минуту
Вы питаетесь иллюзиями созданным более превелегированным обществом, вот и все.

Добавлено через 39 секунд
Вы идете в никуда...
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.01.2020, 22:55
Вы какую-то философическую чушь написали (да и еще безграмотно; да, кстати, в философии я разбираюсь если что). Я вам про Фому, вы - про Ерему.
Видно, что вы далеки от мира программирования и что-то объяснять бесполезно.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
26.01.2020, 23:58
Цитата Сообщение от Garry Galler Посмотреть сообщение
в философии я разбираюсь если что
Цитата Сообщение от Garry Galler Посмотреть сообщение
Я вам про Фому, вы - про Ерему.
Всего доброго.
0
6 / 4 / 1
Регистрация: 28.09.2016
Сообщений: 223
27.01.2020, 14:14  [ТС]
Когда я спрашивал: “как упростить распространение программ питона?”, я не имел ввиду: “Как получить один exe-файл?”
Я понимаю, что если бы это было “правильно”, то это сделали бы сами разработчики питона.
Я понимаю, что правильно располагать части программы в различных файлах и папках.
Но этим не должен заниматься пользователь, который хочет использовать эту программу.
Пользователь должен увидеть какой-то файл для запуска установки, кликнуть по нему и может быть ответить на несколько вопросов, связанных с установкой.
Созданием файлов должен заниматься разработчик, т.е. я (в данном случае)
После всей полемики мой вопрос можно перефразировать: “Как создать этот установочный файл(файлы)?”
К сожаления, в сети не смог найти понятную (русскоязычную) инструкцию по этой теме.
Надеюсь, что кто-то сможет описать способ создания “пакета для распространения” (именно для начинающих)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.01.2020, 17:57
Цитата Сообщение от pumaex Посмотреть сообщение
“Как создать этот установочный файл(файлы)?”
Ну если вы осознали, что создание установочного дистрибутива программы (не пакета!) никакого отношения к Python не имеет, гуглите документацию по бесплатным инсталляторам типа InnoSetup, NSIS и т.п. Большинство программ, которые вы ставите себе на к компьютер, упакованы именно такими инсталляторами.
Хотя, конечно, можно обойтись и созданием самораспаковывающегося архива (rar.sfx), если понимать как правильно прописать команды установки.
Цитата Сообщение от pumaex Посмотреть сообщение
способ создания “пакета для распространения”
Как создавать именно пакет распространения, я как раз и описал в этом посте
Но понятие пакет не включает в себя интепретатор и все встроенные библиотеки. Пакет это то, что вы качаете с репозитория pypi командной pip install модуль. И это - самый что ни на есть стандартный и описанный в документации способ распространения программных модулей на Python. Все прочее - за пределами официальной документации; в том числе и сборщики типа pyinstaller или Cx_Freeze, которые, разумеется, иногда упрощают создание простых дистрибутивов, но, работа с ними нередко оказывается проблемной при сборке сложноорганизованных модулей.

Добавлено через 2 часа 47 минут
Цитата Сообщение от pumaex Посмотреть сообщение
К сожаления, в сети не смог найти понятную (русскоязычную) инструкцию по этой теме.
Ее и не существует. И на английском тоже не видел. Это не та задача, под которую пишутся инструкции.
------------------------------------------------------------------
Другой способ передачи программы (без упаковки каким-нибудь инсталлятором интерпретатора+либы+скрипт в один файл) заключается в использовании emdeddable сборок Python, которые есть на оффсайте. Скачиваем, устанавливаем (после некоторых манипуляций) туда все нужные библиотеки + наш модуль\пакет (его нужно превратить в стандартный whl) и отдаем этот каталог клиенту, который он волен запихнуть куда хочет. Для запуска программы пишем пользователю батник или объясняем как сделать ярлык на лаунчер скрипта из папки Scripts. Лаунчер скрипта создается при установке скрипта из whl пакета с опцией entry_points в setup.py. Как создавать whl c такой опцией написано в доках по setuptools (англ. - гугл транслейт в помошь).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2020, 17:57
Помогаю со студенческими работами здесь

Обратное распространение ошибки, нейронные сети
Такая задачка, в python мало что понимаю. Буду благодарен за помощь.

Распространение программ
Всегда интересовался этим.Как разработчики начинают распространять свое ПО?С каких шагов они начинают? Помогите :) С меня лайк

Распространение использования кодов и программ
Возможно ли использование кодов и программ на Android или IOS устройства? Если да, то как?

Распространение
Написал прогу и появилась такая проблема. Как запаковать проект (т.е exe и прилогающиеся к моей проге dll в месте с необходимыми файлами...

Распространение приложения
как распространяют Net приложения? допустим ClickOnce / пишут , в документации , что можно с помощью сервера , тут есть знатоки ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru