Найти - Пользователи
Полная версия: Созданный pyinstaller файл не работает на других ПК
Начало » Python для новичков » Созданный pyinstaller файл не работает на других ПК
1
Vimdo
Добрый день. Меня заинтересовала возможность создания бинарных файлов из скриптов на python. Я установил pyinstaller через pip на windows 10 x64. Пробую создать файл из скрипта следующего содержания:
 with open('test.txt', 'w') as file:
    file.write("Hello, World")
Создаю следующей командой:
pyinstaller -F -w test.py
Ошибок в консоле нет, насколько я успеваю рассмотреть. Файл test.exe создается в папке dist. На ПК, на котором данный файл создавался, программа работает без проблем. На двух других пк (win 8.1 x64 и win 10 x64) она не срабатывает. Попробовал завернуть в try/except, чтобы увидеть ошибку:
 try:
    with open('test.txt', 'w') as file:
        file.write("Hello, World")
except Exception as e:
    with open('log.txt', 'a') as log:
         log.write(str(e))
и заново создал бинарник с теми же параметрами. Однако лог файл тоже не создается, хотя по идее должен. Подскажите, пожалуйста, где моя ошибка. Заранее благодарен!

P.S. Антивирусов нет, а программа лежит в Документах, так что права на создание файлов есть.
Kasta_neda
Скорее всего это не полный код, предполагаю, что вызываются модули и в системе где создавался exe файл модули установлены а в других системах питоном и не пахло. При создании бинарника надо и модули указывать. Ну это не факт. Больше информации надо.
PEHDOM
попробуй создать без ключа -w, тогда при запуске будешь видеть окно консоли в котором будет выводиться разная отладка.

можно попробовать еще вот такой “ход конем” чтобы все исключения писались в файл:
https://stackoverflow.com/questions/8050775/using-pythons-logging-module-to-log-all-exceptions-and-errors
альтернативный вариант:
https://stackoverflow.com/questions/1235349/python-how-can-i-handle-any-unhandled-exception-in-an-alternative-way
но ИМХО для такого простого кода это излишне, если конечсно это вес код.

Kasta_neda
При создании бинарника надо и модули указывать. Ну это не факт.
не факт 100% , как раз пиинсталлер редко требует указывать модули, он сам анализирует импорты и тянет все что нужно, в отличии от тогже cxFreeze
Kasta_neda
не факт 100% , как раз пиинсталлер редко требует указывать модули
Вот как раз с оглядкой на cxFreeze и говорил, всегда с ним работал, с пиинсталером очень давно, не помню уже особенностей.
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