Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Data Science

Crear un ejecutable desde un programa Python

Alura
Yan Orestes
Yan Orestes
18/10/2020

Compartir

Mira este artículo:
  1. Congelando nuestro programa Python con cx_Freeze
  2. Portabilizando nuestro código para un mayor acceso

Aprenda a solucionar este tema, congelando un archivo Python en un simple ejecutable, con el cx_Freeze y ¡comparte tus aplicaciones con más gente!.

Recientemente, he estado trabajando en un proyecto simple en Python para el cálculo del IMC. Mi código simplemente toma el input de altura y peso del usuario e imprime el IMC con la fórmula Peso / Altura²:

peso = float (input ('Ingrese tu peso (kg):'))
altura = float (input ('Ingrese tu altura (m):'))
imc = peso / (altura * altura)
print ('Tu IMC es {}'.format (imc))

El programa funciona bien, incluso podemos probar:

python imc.py
Ingrese tu peso: 90
Ingrese tu altura: 1,80
Tu IMC es 27.777777777777775

¡Correcto! Me gustó el resultado y decidí mostrárselo a algunos amigos. El problema es que, como no son programadores, no tenían Python instalado en su máquina.

¿Y ahora? ¿Tendré que pedirles que instalen el interpretador Python, o una IDE, solo para que puedan ejecutar mi pequeño programa? O peor, ¿tendré que instalarlo en sus computadoras, ya que ellos no entienden mucho de esto?

Echando un vistazo a mi computadora, me di cuenta de que tengo varios programas instalados que ejecutan archivos sin la necesidad de instalar un interpretador o algo así. ¿Cómo lo hacen? ¿Y si hiciéramos lo mismo?

Lo ideal sería si pudiéramos transformar nuestro archivo imc.py en un ejecutable más genérico (como cualquier ejecutable en Linux, o los .exe en Windows), que pudiera ejecutarse sin problemas. ¡Afortunadamente esto es bastante simple!

Congelando nuestro programa Python con cx_Freeze

La idea de transformar un programa.py en un ejecutable común no empezó con nosotros, cómo se imagina.

Entonces, actualmente ya existen varias herramientas y scripts que nos pueden hacer todo este proceso de conversión, como PyInstaller, py2exe y cx_Freeze.

Usaremos cx_Freeze, ya que es multiplataforma y fácil de usar. El primer paso, como siempre, es instalar este paquete Python. Para eso, usamos el pip, en el terminal:

pip install cx_Freeze

En sistemas basados en UNIX, este comando puede necesitar de un permiso sudo para funcionar.

Instalado el paquete, con un simple comando en el terminal ya podemos crear nuestro ejecutable. El comando base es simplemente cxfreeze, pero, como queremos organizar un poco mejor, usaremos la flag --target-dir p ara indicar la carpeta donde queremos que estén nuestros archivos:

cxfreeze imc.py: --target-dir calculadora-imc

Después de un largo output, se crea la carpeta calculadora-imc. Dentro de ella, tenemos la siguiente organización:

yan@linux-flrj:~/imc/calculadora-imc> ls
imc lib libpython3.6m.so.1.0
yan@linux-flrj:~/imc/calculadora-imc>

Los archivos dentro de la carpeta lib y el libpython3.6m.so.1.0 son archivos de biblioteca que contienen los datos necesarios para que funcione el ejecutable. A su vez, el archivo imc (en Windows se llamaría imc.exe) es el ejecutable.

Incluso podemos probarlo:

yan@linux-flrj:~/imc/calculadora-imc> ./imc
Ingrese tu peso: 90
Ingrese tu altura: 1,80
Tu IMC es 27.777777777777775
yan@linux-flrj:~/imc/calculadora-imc> _

Funciona bien ¡y sin la necesidad de instalar el Python!

Es importante darse cuenta de que, como usé _cxFreeze en Linux, este ejecutable solo debe funcionar en Linux. Para crear un ejecutable en Windows, lo ideal sería ejecutar _cxFreeze también en Windows.

Portabilizando nuestro código para un mayor acceso

Python, por varias razones, ¡es un increíble lenguaje de programación! Sin embargo, una de sus características que en ocasiones puede terminar decepcionando a algunos usuarios, es que un programa Python solo funcionará si la computadora tiene instalado el interpretador de Python.

Esto termina volviéndose un poco aburrido en situaciones en las que queremos compartir nuestro programa con no-programadores, que difícilmente tendrán Python instalado (especialmente si usan Windows, ya que Python viene por estándar en muchas distribuciones basadas en Unix), o incluso con personas que solo tienen instalada una versión diferente a la que trabajamos en nuestro código.

Debido a esto, se crearon varios scripts para convertir un archivo.py en un simple ejecutable que podría funcionar sin instalar Python. Hoy, abordamos el cx_Freeze, que es multiplataforma y muy fácil de usar.

¿Qué tal aprender más sobre Python y sus diversos recursos? Entonces, ¡Mira nuestros cursos de Python para Data Science aquí en Alura!

Artículo Anterior
En SQL, null es null, vacío está vacío
Siguiente Artículo
Cómo eliminar filas y columnas con Pandas en Python

Ver otros artículos sobre Data Science

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast