Error al importar modulos standard con cx_freeze [PYTHON]

Iniciado por Yidu, 14 Enero 2017, 21:16 PM

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

Yidu

Hola de nuevo!

Estoy haciendo alguna prueba con cx_freeze. Osea, para convertir archivos py a exe.

Con scripts sencillos me funciona. Por ejemplo (prueba_2.py):

Código (python) [Seleccionar]
for i in range(1, 100):
   print(i)
input()


Luego creo el script de cx_freeze (setup.py):

Código (python) [Seleccionar]
from cx_Freeze import setup, Executable


setup(name = "Plantilla",
     version = "0.1",
     description = "Crear ejecutable",  
     executables = [Executable("prueba_2.py")])


Esto me crea la carpeta build dentro del directorio de python. Y dentro de la carpeta build tengo el ejecutable prueba_2.exe y alguna carpeta mas.

El problema viene, cuando en algun script que creo, importo algun modulo. Por ejemplo, pickle. Creia que con esto bastaba:

Código (python) [Seleccionar]
from cx_Freeze import setup, Executable

build_exe_options = {"packages": ["pickle"]}

setup(name = "Plantilla",
     version = "0.1",
     description = "Crear ejecutable",  
     options = {"build_exe": build_exe_options},
     executables = [Executable("ejemplo.py")])


Pero no funciona. He leido algunos tutoriales pero sigue sin funcionar. Para construir el exe hago la tipica llamada:

Código (python) [Seleccionar]
C:\Python34>py setup.py build

Hay alguna plantilla de cx_freeze para poder utilizar los modulos standard de Python? En mi caso, la version 3.4

PUAROT

Cuando importas módulos lo haces de la forma:
from modulo import *

Si es así prueba a importar las partes del modulo que utilizas, aunque sean varias del estilo :
from modulo import función

Yidu

Cita de: PUAROT en 15 Enero 2017, 00:25 AM
Cuando importas módulos lo haces de la forma:
from modulo import *

Si es así prueba a importar las partes del modulo que utilizas, aunque sean varias del estilo :
from modulo import función


Hola!

Bueno, he importado asi los modulos por que asi lo decia la documentacion y ejemplos de cx_freeze. En cambio, en el script que queria convertir a *.exe, utilizaba el:

Código (python) [Seleccionar]
import pickle

De todas formas, pienso, que debe de ser algo que no configuro bien. Por que he visto algunos ejemplos de gente convirtiendo un juego hecho con pygame a ejecutable (exe). Y claro, el script de cx_freeze era bastante mas extenso.


PUAROT

A mi me daba problema con Tkinter pero importando los módulos que necesitaba de tkinter como te indicaba antes y este script ,conseguí crear mi ejecutable:
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == 'win32':
    base = 'Win32GUI'
options = {
    'build_exe': {
        'compressed': False,
        'includes': ['Aquí el nombre de un modulo que estaba importando creado por mi ']
    }
}

executables = [
    Executable('archivo.py', base=base)
]

setup(name='archivo',
      version='2',
      description='Prueba.',
      executables=executables,
      options=options
      )