@tester228777

Как правильно упаковать .py в .exe?

Есть определённый python скрипт, который нужно упаковать в exe. При запуске в IDE всё отлично работает, а вот в exe никак портировать не получается. Пробовал через pyinstaller -F main.py, не работает. Открывается командная строка и тут же закрывается, вот что в ней прописывается:5de5502d94355129743706.png

Помогите пожалуйста, подскажите правильное направление.
Заранее спасибо.
  • Вопрос задан
  • 827 просмотров
Пригласить эксперта
Ответы на вопрос 2
@DollaR84
Ну судя по ошибке - telebot не может найти файл сертификата SSL.
Дело все в том, что при запуске exe, созданного pyinstaller, сначала все содержимое распаковывается во временную папку, а затем запускается из нее, соответственно путь другой.
Поэтому что можно сделать в вашем случае:
файл SSL добавить в упаковку pyinstaller, с помощью опции --add-data. Пример:
pyinstaller -F --add-data ssl;. main.py
Где:
ssl - файл сертификата;
. - точка означает текущий каталог, это если файл сертификата лежит в корне со скриптом.

Затем в самом скрипте надо добавить следующий код:
import os
import sys
def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS
    else:
        base_path = os.getcwd()
    return os.path.join(base_path, relative_path)

Затем в том коде, где вы передаете данный файл боту, надо задавать его через данную функцию.
Ответ написан
Комментировать
Попробуй cx_freeze.
python -m pip install cx_freeze
Далее создай файл setup.py и внеси в него следующий код:
import some_module
from cx_Freeze import setup, Executable

executables = [Executable('example.py')]

setup(name='hello_world',
      version='0.0.1',
      description='My Hello World App!',
      executables=executables)

В начале импортируй все модули, которые использует твоя программа.
Далее запускай консоль и пиши:
python setup.py build
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы