Найти - Пользователи
Полная версия: sutup file с программы на python
Начало » Python для новичков » sutup file с программы на python
1 2 3 4
Face
Всем добрый день!
Подскажите, пожалуйста, самый продуктивный способ сделать установочный файл или исполняемый с программы, написанной на python.
Весь форум пролистать не успел, может быть ранее такие темы были, сбросте ссылки.

Сделал исполняемый файл через pyinstaller, запускается только на моём компе, на других не хочет, при чем windows разные там установлены.
Использую python 3.6.

Спасибо! Буду благодарен любым отзывам.
Striver
на других не хочет
Ошибку пишет какую-нибудь? Если да, то сюда бы её.

Скорее всего, редист нужен микрософтовский. Раньше было достаточно DLL-ку нужную подложить в каталог с программой, возможно, что и тут поможет.
Face
Striver
Ошибок нет. Просто запустили и ничего не происходит.

А про DLL подробнее, пожалуйста, я просто новичек в IT)

А вот такие packages как setuptools, distutils.core или a_package. На сколько они продуктивны?
Striver
А про DLL подробнее, пожалуйста
Я лет 10 назад в Python 2.5 создавал исполняемые файлы с помощью пакета py2exe. На других машинах они сразу не запускались, требовалась некая DLL-ка. Формально, надо было заставить пользователя компьютера, на который ставится программа, установить пакет vcredist от микрософта определённой версии. Фактически достаточно было скопировать нужную DLL в каталог с программой. Лет 5 назад практически также я делал исполняемые файлы с помощью пакета cxFreeze для питона 3.3. И ему тоже нужно было что-то такое на других компах. Выводилась ошибка, какой DLL ему не хватает, я её брал с того компа, где был Питон (из каталога \Windows\System32), и копировал в каталог с программой. Для питона 3.3, кажется, нужно было две DLL-ки. Их названий сейчас не вспомню.

Если у тебя не выдаёт ошибку, то, возможно, тут какая-то другая проблема. Попробуй из командной строки запустить, может там что-то выдаст.
PEHDOM
Face
Сделал исполняемый файл через pyinstaller, запускается только на моём компе, на других не хочет, при чем windows разные там установлены.
Использую python 3.6.
тут нет готового решения, сколько раз собирал pyinstaller-ом всегда все запускалось на разных кумпуютерах, и никаких vcredist-оа не нужно было. Так что для начала соберите ваш екзешник без ключа -w, –windowed, –noconsole и посмотрите чего оно вам пишет. Обычно такое случается когда pyinstaller не затягивает какойнить дюже нужный модуль, оно тогда вам сразу в консоль вывалит : “cannot import module….” И тогда вы или явно в коде указываете импорт, или говорите об этом pyinstaller-у через ключ –hidden-import MODULENAME

ЗЫ ну и проверте разрядность ОС/пайтона под какой собираете и под какой запускаете, если собираете на 64-битном пайтоне а запускаете на 32-битной венде то “кина не будет”.
Face
PEHDOM
Да без -w не пробовал. На счёт разрядности, то запускал на разных win и 64 и 32.
Когда делаю через pyinstaller, то выскакивает много каких-то непонятных предупреждений warning. Но при этом порога на моём компе запускается.
Программа написана на tkinter мне с - w нужно собирать чтоб не консольная была.
Striver
Программа написана на tkinter мне с - w нужно собирать чтоб не консольная была.
Ну, пока с проблемой разбираешься, лучше пусть консольной будет, потом -w вернуть нетрудно.
PEHDOM
Face
Программа написана на tkinter мне с - w нужно собирать чтоб не консольная была.
ну по поводу что пока идет отладка лучше -w оставить, вам уже сказали. А на будущее если вы собираетесь и далее запаковывать все в exe, стоит подумать чтобы все исключения выводились в какойнить файл а-ля errors.log. делается это достаточно просто , и не требует особых затрат,всего десяток строчек кода в начале модуля:
https://stackoverflow.com/questions/6234405/logging-uncaught-exceptions-in-python
Face
PEHDOM
Да без -w не пробовал. На счёт разрядности, то запускал на разных win и 64 и 32.
Когда делаю через pyinstaller, то выскакивает много каких-то непонятных предупреждений warning. Но при этом порога на моём компе запускается.
Программа написана на tkinter мне с - w нужно собирать чтоб не консольная была.

Затем попробовал собрать с помощью cx_Freeze (код в приложении)
Выскакивает такая вот ошибка (в приложении)

Любые мысли будут полезны по этому поводу.
Face
Код..
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