Уведомления

Группа в Telegram: @pythonsu

#1 Март 30, 2016 08:20:36

Jinn
Зарегистрирован: 2016-03-30
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

запуск py-приложений везде

Доброго времени суток, форумчане.
100% ответ на мой вопрос где-то есть, но несколько поисковых запросов в гугле и на форуме не дали плодов, поэтому решил спросить.

Суть проблемы: я написал консольное приложение на питоне. У меня на пк оно отлично работает, потому что питон был установлен. А если я его хочу отправить другу, что бы он запустил у себя? Можно ли как-то обойти ручную установку питона перед запуском? Например как-то построить это приложение, создав нужные файлы и ехе-шник. Или прикрутить какой-то сетап-файл, который сам установит питон перед запуском приложения. Вопрос наверное нубский, но не могу понять как.

Отредактировано Jinn (Март 30, 2016 08:24:14)

Офлайн

#2 Март 30, 2016 08:52:15

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

запуск py-приложений везде

Jinn
вы ищите cx_freeze и подобные ему.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Март 30, 2016 11:47:12

Kirill_Anisimov_+1
Зарегистрирован: 2016-03-28
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

запуск py-приложений везде

Попробуйте py2exe, это то что Вам нужно как я понял.

Офлайн

#4 Март 30, 2016 20:45:15

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

запуск py-приложений везде

JOHN_16
вы ищите cx_freeze и подобные ему.
Kirill_Anisimov_+1
Попробуйте py2exe, это то что Вам нужно как я понял.
Не согласен.
Читаем:
Jinn
Можно ли как-то обойти ручную установку питона перед запуском?
Ответ да.
Думаю ТС ищет бат файл с содержимым:
msiexec /i python-2.7.11.amd64.msi
copy you_file.py c:\windows\system32 
:)
Который надо запустить для “установки” вашего приложения.
https://technet.microsoft.com/en-us/library/cc759262(v=ws.10).aspx#BKMK_Install
Питон отлично установится не в ручном режиме. Для нормальных систем и этого не требуется, питон нам уже есть.

Для надежности можно слать 32 разрядный питон.

p.s.
вторая строчка конечно шутка.



Офлайн

#5 Март 30, 2016 22:10:19

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

запуск py-приложений везде

doza_and
Не согласен.
Читаем:
Jinn
Например как-то построить это приложение, создав нужные файлы и ехе-шник
я вот это понял как ни что иное как собранный cx_freeze проект



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Март 30, 2016 22:33:34

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

запуск py-приложений везде

Ключевое слово Например. Он предполагает что это можно делать так, но не требует.

Зачем несведущего человека учить бяке? Так он спокойно поставит другу питон и думать забудет об этой проблеме для всех своих скриптов. По поводу cx_freeze весь этот форум набит воплями о помощи. И супер спецы зачастую не могут сказать как его использовать для конкретного проекта.

Я еще могу понять желание использовать cx_freeze когда ваш скрипт тянет кучу бинарных зависимостей. Но если это простенькая консоль? Тогда зачем эти танцы?



Офлайн

#7 Март 30, 2016 23:42:15

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

запуск py-приложений везде

doza_and
как раз таки с простенькими консольными скриптами не надо даже setup.py делать - достаточно cx_freeze my_prog.py . Пусть Jinn выложит код программы, если конечно он захочет, и мы попробуем собрать его без танцев.
P.S. по мне так установить Питон лучшее решение, а каким способом … это уже другое. и не о том. и не важно.
P.P.S. ни в коем разе не являюсь каким либо фанатом cx_freeze и подобных тулзов. Просто в свое время мне понадобилось такое, и мне подошел именно cx_freeze



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#8 Март 31, 2016 04:21:02

Jinn
Зарегистрирован: 2016-03-30
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

запуск py-приложений везде

JOHN_16
doza_andкак раз таки с простенькими консольными скриптами не надо даже setup.py делать - достаточно cx_freeze my_prog.py . Пусть Jinn выложит код программы, если конечно он захочет, и мы попробуем собрать его без танцев.P.S. по мне так установить Питон лучшее решение, а каким способом … это уже другое. и не о том. и не важно.P.P.S. ни в коем разе не являюсь каким либо фанатом cx_freeze и подобных тулзов. Просто в свое время мне понадобилось такое, и мне подошел именно cx_freeze

Вопрос был чисто гипотетическим. Просто если я напишу то, что посчитаю интересным и захочу показать, хотелось бы знать как) Допустим вот маленькая PygLatin.
while True:
        a = input("Enter a word: ")
        def piggin(a):
                return a[1:]
        if str.isalpha(a) == True:
                print (piggin(a).lower() + a[0].lower() + "ay")
        elif len(a) < 1:
                print ("Enter a word, please!")
        else:
                print ("Error!")

Отредактировано Jinn (Март 31, 2016 04:21:23)

Офлайн

#9 Март 31, 2016 04:29:08

Jinn
Зарегистрирован: 2016-03-30
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

запуск py-приложений везде

doza_and
Думаю ТС ищет бат файл с содержимым:

msiexec /i python-2.7.11.amd64.msi
copy you_file.py c:\windows\system32


Который надо запустить для “установки” вашего приложения.
https://technet.microsoft.com/en-us/library/cc759262(v=ws.10).aspx#BKMK_Install
Питон отлично установится не в ручном режиме. Для нормальных систем и этого не требуется, питон нам уже есть.

Для надежности можно слать 32 разрядный питон.

p.s.
вторая строчка конечно шутка.

Можно поподробнее?
На ссылку зайти не смог, пишет “Unable to Service Request”.
И какая вторая строчка шутка? В батнике? С батниками и командами для них не знаком(
Как я понял можно создать bat-файл, который будет тем самым “инсталлятором”, который сам установит питон и запустит приложение?

Офлайн

#10 Март 31, 2016 07:43:46

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

запуск py-приложений везде

Jinn
На ссылку зайти не смог
Извините что-то криво пошло.
https://msdn.microsoft.com/ru-ru/library/cc759262(v=ws.10).aspx

Подробности.
На винду msiexec при задании нужных ключей молча и без вопросов поставит вам питон из msi пакета. Ключи уточните в справке от микрософт. Ставить из msi рекомендованый способ установки Python на эту операционную систему. Python при этом пропишется в реестре, так чтобы его можно было удалить, модифицирует OS так чтобы файлы *.py по клику мышкой запускались при помощи питона. Ну может еще чтото, что авторы питона сочли важным.

*.py файлы можно запускать и без этих премудростей. Вы можете взять папку в которой лежит питон. Положить ваш скриптик рядом. и написать командный файл в котором прикажете запустить питоном ваш скрипт. Дальше архивируете и отдаете другу. Он распакует и будет пускать bat файл в котором прописан запуск вашего скрипта.

cx_freeze это продвинутый способ упаковать питон. Я им не пользовался, но судя по обсуждению в каждый экземпляр *.exe файла будет упакован весь интерпретатор (точнее нужная его часть).

Из минусов этого подхода - необходимость дублирования питона в каждом приложении. Для абзаца кода привешивать к нему под 100 мегабайт довесков очень странно. Потом ваш друг не сможет полюбоваться вашим кодом, а вы не сможете его подогнать под нужды друга, когда у него будете. Все будет упихано в исполняемый файл (ну может конечно спецы расскажут как его выковыривать).

Из минусов второго подхода. Если питон у вас общий, то потенциально возможен конфликт пакетов внутри питона. Т.е. один ваш скрипт требует наличия модуля X а другой его не переносит. Говорят так бывает. Я не встречал.

Есть еще кошерный путь. Создать инсталлятор, который при необходимости выкачает из интернета и установит питон. Windows отсталая система. Поэтом такой подход будет нормально работать начиная с windows 10. Только там появился наконец менеджер пакетов. Можно конечно залудить подобное и для старых виндов.



Отредактировано doza_and (Март 31, 2016 07:49:54)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version