[Tuto]Compilar *.py a *.exe (By: Ghost)

Iniciado por ProcessKill, Febrero 24, 2010, 04:05:36 PM

Tema anterior - Siguiente tema

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

tutorial compilar *.py a *.exe
(Tutorial by Ghost)


Bueno en este peque?o tutorial les voy a explicar como compilar un archivo *.py de python a *.exe, primero que nada veremos la pagina oficial del programa No tienes permitido ver los links. Registrarse o Entrar a mi cuenta , luego lo descargamos d la siguiente direcci?n:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Empezemos con el procedimiento:


Paso 1

Primero que nada instalamos el py2exe en la maquina en el directorio donde quedo instalado el python; Una vez ya creado nuestro archivo que queremos compilar, creamos otro archivo *.py que contenga estas lineas :

Código: python
from distutils.core import setup

import py2exe

setup(console=["nombre_de_archivo.py"])


Donde dice nombre_de_archivo lo cambiamos por el nombre del archivo a pasar a *.exe.

Paso 2

Ahora guardamos los dos archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y nombre_de_archivo.py, en el directorio de instalaci?n de python que va a deender de la version...  entonces nos dirigimos a la consola de comandos Inicio > ejecutar > CMD

y nos dirigimos al directorio de instalaci?n de Python c:\python25> ( usando el comando cd.. para subir de carpeta y cd python25 para entrar o acceder a la carpeta, comandos basicos batch)

Una vez dentro del directorio en el cmd tecleamos la siguiente linea de comandos

Código: php
c:\python25> setup.py py2exe


Lo que hara ser? ejecutar nuestro archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y arrancar el py2exe para compilar

Despues al compilar nos aparecer? algo como esto:

Código: php
running py2exe
*** searching for required modules ***
*** parsing results ***
creating python loader for extension 'zlib'
creating python loader for extension 'unicodedata'
creating python loader for extension 'bz2'
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
byte-compiling C:Tutorialbuildbdist.win32winexetempbz2.py to bz2.pyc
byte-compiling C:Tutorialbuildbdist.win32winexetempunicodedata.py to unicodedata.pyc
byte-compiling C:Tutorialbuildbdist.win32winexetempzlib.py to zlib.pyc
skipping byte-compilation of c:Python24libStringIO.py to StringIO.pyc

[skipping many lines for brevity]

skipping byte-compilation of c:Python24libwarnings.py to warnings.pyc
*** copy extensions ***
*** copy dlls ***
copying c:Python24libsite-packagespy2exerun.exe -> C:Tutorialdisthello.exe

*** binary dependencies ***
Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.

Make sure you have the license if you distribute any of them, and
make sure you don't distribute files belonging to the operating system.

   ADVAPI32.dll - C:WINDOWSsystem32ADVAPI32.dll
   USER32.dll - C:WINDOWSsystem32USER32.dll
   SHELL32.dll - C:WINDOWSsystem32SHELL32.dll
   KERNEL32.dll - C:WINDOWSsystem32KERNEL32.dll


por ultimo el programa creara una carpeta en C:\python25\dist\ que es dodne se ha guardado nuestro *.exe compilado con todas librerias necesarias para ejecutarlo, ( queda bastante pesado o.o)

Buenisimo aporte!! me viene de 10!! +Karma!!


Hola, gracias por el aporte, solo una duda. Porqué al ejecutarlo dá un pantallazo y se cierra, se supune que debería quedar estático en mi uso un meú de opciones y solo veo pun instante y se cierra.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola, gracias por el aporte, solo una duda. Porqué al ejecutarlo dá un pantallazo y se cierra, se supune que debería quedar estático en mi uso un meú de opciones y solo veo pun instante y se cierra.

Hola....podrías Compartir un poco más de información como una parte del código...así sería más fácil porque lo primero que se me cruza es que tu menu sólo se muestra...no espera a que el usuario Ingrese un valor para leerlo y por ese motivo finaliza.....

funciona si lo ejecutar desde la consola?