Найти - Пользователи
Полная версия: Распространение программ
Начало » Python для новичков » Распространение программ
1 2 3 4 5 6
vanvanov
py.user.next
Тут одним экзешником, запускаемым из папки, не обойдёшься.
Ну так, получается, это все равно работа установщика? А в чем разница? Идеологическая?
AD0DE412
не ну раз про портабность пошла речь, то может быть стоит посмотреть как это делают с другими программами (т.е. вобще с любыми другими)
например
https://xakep.ru/2011/03/21/54883/
или
https://pcsecrets.ru/soft/programmy-dlya-sozdaniya-portable-prilozhenij.html
есче
https://servis2010.ru/portabelizatsiya/3143-sozdanie-portable-versii-prilozheniya.html

на сколько понимаю там приложение получается изолированым от системы
doza_and
vanvanov
Ну так, получается, это все равно работа установщика? А в чем разница? Идеологическая?
Так про то и толкуют что нет никакой разницы. Для использования более или менее сложной программы нужен установщик. Насколько он удобен и корректно работает в основном зависит от разработчика установщика. Для питона под винду установщик в виде командного или powershell файла будет содержать 2-5 строк Проверить наличие питона если нет установить, обновить окружение, запустить pip. Чтобы такое написать нужно знать только самые самые основы командного языка.

Для простых скриптов без зависимостей ничего не нужно, скопировали и запустили точно также как exe. А то что на винде нет установленного по умолчанию питона в отличии от большинства других систем так это проблема винды и ее пользователей, которая правится просто установкой питона.

Проблема поиска питона установленного незнамо куда отсутствует. Если питон появился в результате УСТАНОВКИ, то он есть в путях, и ОС его найдет. Если у вас по всей системе разбросаны десятки питонов то кто мешает в установщике их все найти ? Вопрос только какой из них вы будете использовать? Надо будет пользователю выбирать. Я думаю никакой сисадм не позволит иметь такой хаос.

По поводу портатисного питона. Я не рекомендую такой путь. Однако очевидно что не требуется генерация cmd файла. Если я правильно вас понял, то сценарий такой, копируем или распаковываем из архива zip/7z/… папку с питоном и скриптом пользователю. Тычем во что-то и запускаем программу. Ну так и делайте то во что тычете с относительными путями к питону. Или вы предполагаете что пользователь будет хаотически перемешивать содержимое папки?

Непонятно где тут необходимость в cx_freeze или другим аналогичным поделкам?
py.user.next
vanvanov
А в чем разница? Идеологическая?
Открой в винде список установленных программ и там ты увидишь, что их можно удалить. А кто же их удаляет при нажатии на “удалить”? И как эти программы вообще в этот список попали? А попали они в него в результате установки из дистрибутива программы. И удаляются они точно так же - с помощью деустановщика, который обозначил себя для операционной системы с помощью установщика. Это нормальный подход. И при таком подходе совершенно не важно, скрипт через интерпретатор у тебя выполняется или же это экзешник, выполняемый сам по себе. И даже простой пользователь разницы не почувствует, потому что для него твоя программа будет просто ярлыком на рабочем столе или в меню графической оболочки.

А массовый бум на упаковку питоньих скриптов в один экзешник - это просто побочный эффект низкой квалификации программистов. Школота не может освоить дистрибуцию, так как все эти установщики какие-то сложные, нужно много читать и ничего не понятно.
PEHDOM
vanvanov
Рабочей программы же. Как мне связать ее с переносным Питоном? Создать *.cmd? Но тогда, опять же, надо использовать умный установщик, который этот cmd и создаст (ибо программа может быть распакована куда угодно).
вы серьезно? данунах. вот вам https://fex.net/s/bsy5esk простенький “Hello word” c блекджеком и шлю.. пайтоном и cmd. чтобы запустить нужно распаковать архив, зайти в папочку и запустить run.cmd. никаких путей а PATH прописывать не нужно, никакого умного установщика, распаковать можно куда угодно и оно заработает.


AD0DE412
не ну раз про портабность пошла речь, то может быть стоит посмотреть как это делают с другими программами (т.е. вобще с любыми другими)
например
Нет, это если программа требует какихто записей в реесте, регистрации dll в системе, и тд. тогда да приходиться городить огород с всякими ThinApp. Пайтон изначально абсолютно портабельный(ну почти, более ранние версии ложили dll-ку в systm32 без которой “кина не будет”, но решалось все это копированием dll-ки в папку с python.exe).
vanvanov
py.user.next
А попали они в него в результате установки из дистрибутива программы. И удаляются они точно так же - с помощью деустановщика, который обозначил себя для операционной системы с помощью установщика. Это нормальный подход.
Да, но он требует прав админа (кто-то может считать это плюсом). К тому же, а вообще хорошая идея - использовать системный интерпретатор? Или лучше virtualenv?
vanvanov
PEHDOM
вот вам
А как вы Питон порезали?
FishHook
vanvanov
pабочей программы же. Как мне связать ее с переносным Питоном?

 local_python.exe my_program.py

и хоть это в баткник, хоть в ярлык, хоть в VB-скрипт, да хоть и екзешник
vanvanov
FishHook
хоть и екзешник
Не знал о таком, спасибо.
PEHDOM
vanvanov
А как вы Питон порезали?
1. инсталируем, пайтон.
2. копируем папку c спайтоном куданить в temp.
3. копируем python3X.dll из system32(если это старый пайтон, в новых он вроде уже сразу в папке с пайтоном лежит)
4. деинсталируем пайтон.
5. создаем пустую папку.
6. копируем туда из temp python.exe, python3.dll, python3X.dll
7. запускаем, смотрим на отсутсвие чего ругается.
8. копируем то на что ругаеться.
9. GOTO п.7 пока не заработает.
10. PROFIT
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