cx_Freeze exportar tkinter a exe

Iniciado por royer14, 8 Noviembre 2017, 19:02 PM

0 Miembros y 1 Visitante están viendo este tema.

royer14

Hola, tengo dificultades al exportar una aplicacion grafica hecha con tkinter, pero resulta que obtengo error al exportar, seguramente se debe a que he usado muchas librerias o "packetes" que no se incluyen al exportar y como consecuencia obtengo error del exe exportado.
pueden ayudarme?.
quisiera exportar solo lo que se necesita para ejecutarlo, ya que lo exporta con un peso fenomenal.








Código (python) [Seleccionar]

# estas son las librerias que debo incluir
from tkinter import *
from ttkthemes import  themed_tk as tk
from tkinter import ttk
from belfrywidgets import ToolTip
import math

from PIL import Image, ImageTk
from cx_Freeze import setup, Executable

# <added>
import os.path
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
# </added>

base = None
if sys.platform == 'win32':
    base = 'Win32GUI'

executables = [
    Executable('nuevo - copia.py', base=base,
               icon ="icono.ico")
]

# <added>
options = {
    'build_exe': {'packages':["ttkthemes","belfrywidgets","math","PIL"],
        'include_files':[
            os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
            os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),
            "icono.ico",
         ],
    },
}
# </added>

setup(name = 'Inventario',
      version = '0.1',
      description = 'Sample cx_Freeze Tkinter script',
      # <added>
      options = options,
      # </added>
      executables = executables
      )
[code=python]




[/code]

PUAROT

Cuando haces un ejecutable tiene que meter mucha "morralla" ya que necesita un interprete python mas sus librerías, por lo que el exe va a ser grandecito...

Para que te funcione bien y minimizar en lo posible el tamaño del exe, tienes que empezar por hacerlo en tu código.
Veo que tienes :
Código (python) [Seleccionar]
from tkinter import *
en lugar de :
Código (python) [Seleccionar]
from tkinter import "la librería que de verdad estas usando"

Importa solo lo que utilices en tu programa, no las librerías completas.

Prueba y nos cuentas !

royer14

sale el siguiente error


Puedes hacer un ejemplo?