Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: yoelrodguez en 8 Agosto 2015, 00:15 am



Título: problema con la compilación con cx_Freeze
Publicado por: yoelrodguez en 8 Agosto 2015, 00:15 am
Hola todos,  estoy compilando un programa que cree en Python 3.4 para obtener el número de serie del disco duro de la máquina. Cuando lo ejecuto a través del script desde la consola, se me ejecuta bien y me da el resultado que necesito pero cuando ejecuto el (.exe) que me crea después de la compilación me da  el siguiente error.

(https://imageshack.com/i/ip6rjaqqj)

Este es el código

Código
  1. #Importamos la libreria OS para el trabajo de directory.
  2. import sys
  3. import os
  4. #Obtenemos el número de serie del HDD.
  5. def get_serial_number(volume=None):
  6.  
  7.    data = os.popen('vol '+'c:', 'r').read()
  8.    data = data.split()
  9.    cadena = str(data[len(data)-1:])
  10.    return cadena.replace("['", "").replace("']", "").replace("-", "")
  11.  
  12. #Creamos el fichero y directory con el # de serie.
  13. def grabartxt(serie_numero):
  14.  
  15.    #Cremos el directory si no existe.
  16.    directoryPath = 'C:/Altus'
  17.    if not os.path.exists(directoryPath):
  18.        os.mkdir(directoryPath)
  19.  
  20.    #Escribimos el Fechero.
  21.    directoryFile = directoryPath+"/Altus.txt"
  22.    if not os.path.isfile(directoryFile):
  23.        archi=open(directoryFile,'a')
  24.        archi.write(str(serie_numero))
  25.        archi.close()
  26.  
  27. grabartxt(get_serial_number())
  28. #print(get_serial_number())
  29.  
  30.  


Título: Re: problema con la compilación con cx_Freeze
Publicado por: Eleкtro en 8 Agosto 2015, 01:07 am
Tienes que incluir manualmente el módulo en el script de instalación de cx_freeze.

Prueba así:

setup.py
Código
  1. from cx_Freeze import setup, Executable
  2.  
  3. includes = ["subprocess"]
  4.  
  5. includefiles=[]
  6.  
  7. excludes = []
  8.  
  9. packages = []
  10.  
  11. target = Executable(
  12.    # what to build
  13.    script = "Tu Script.py",
  14.    initScript = None,
  15.    #base = 'Win32GUI',
  16.    targetDir = r"dist",
  17.    targetName = "test.exe",
  18.    compress = True,
  19.    copyDependentFiles = True,
  20.    appendScriptToExe = False,
  21.    appendScriptToLibrary = False,
  22.    icon = None
  23.    )
  24.  
  25. setup(
  26.    version     = "1.0",
  27.    description = "Description",
  28.    author      = "Author",
  29.    name        = "cx_Freeze Sample File",
  30.    options     = {"build_exe": {"includes": includes, "excludes": excludes, "packages": packages}},
  31.    executables = [target]
  32.    )

Código
  1. setup.py build

Saludos


Título: Re: problema con la compilación con cx_Freeze
Publicado por: yoelrodguez en 8 Agosto 2015, 01:19 am
Muchas gracias por la respuesta lo pruebo y le comento.


Título: Re: problema con la compilación con cx_Freeze
Publicado por: yoelrodguez en 8 Agosto 2015, 21:01 pm
Le confirmo que me trabajo sin problema. Ahora quiero hacerle una consulta,  en caso que yo quiera compilar el programa hecho en python  para generar un ejecutable  .x32 para usarlo en director. Existe alguna forma para eso.

Saludos


Título: Re: problema con la compilación con cx_Freeze
Publicado por: Eleкtro en 9 Agosto 2015, 06:44 am
en caso que yo quiera compilar el programa hecho en python  para generar un ejecutable  .x32

Para compilar empacar un script a un binario x32 x86, debes usar la build x86 de cx_freeze.

Puedes mantener instalaciones separadas de 64 y 32 Bits de Python al mismo tiempo, y usarlas para esa finalidad.

Saludos