Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Xyzed en 15 Febrero 2021, 08:19 am



Título: Generar exe mediante script Python ¿posible?
Publicado por: Xyzed en 15 Febrero 2021, 08:19 am
Hola.
Tengo una duda, ¿es posible generar un ejecutable mediante un script de Python?
Un ejemplo simple de lo que quiero realizar para que se den una idea, lo puedo dar mediante el siguiente código.
Código
  1. file = open("C:/Users/"+pc+"/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/archivo.pyw", "w") ## aca "taskeng.pyw" crea el archivo con ese nombre y extension de archivo "pyw".
  2. a = "hola" ##defino variable simple para pasarla como valor a escribir, en mi codigo original tengo muchas variables/funciones
  3. file.write(a) ## escribo en el archivo creado el valor de la variable "a".
  4.  
En mi caso, lo que querría hacer es generar en vez del "pyw" un "exe". Directamente desde un script python, sin tener que ejecutar por ejemplo pyinstaller desde la consola.


Título: Re: Generar exe mediante script Python ¿posible?
Publicado por: nosoy en 15 Febrero 2021, 12:13 pm
También está py2exe pero me parece que hay que ejecutarlo igualmente desde consola.

Yo lo que he visto que en lenguajes compilados es que lo que se hace es generar un código fuente con un editor y luego llamar al compilador. Lo que sí podria hacerse -supongo- es un script pero no en python sino en batch o bash, un script que llamase al compilador de turno y al programa a compilar; pero no le veo mucho sentido a hacer eso en lugar de compilar directamente desde consola.


Título: Re: Generar exe mediante script Python ¿posible?
Publicado por: Xyzed en 15 Febrero 2021, 21:03 pm
También está py2exe pero me parece que hay que ejecutarlo igualmente desde consola.

Yo lo que he visto que en lenguajes compilados es que lo que se hace es generar un código fuente con un editor y luego llamar al compilador. Lo que sí podria hacerse -supongo- es un script pero no en python sino en batch o bash, un script que llamase al compilador de turno y al programa a compilar; pero no le veo mucho sentido a hacer eso en lugar de compilar directamente desde consola.

Hola sí, estoy enterado de py2exe también, y se me ha pasado también por la cabeza generar los comandos bash para realizar la finalidad. Pero lamentablemente no sirve, debido a que los usuarios deberán tener instalada las librerías necesarias para ejecutar las sentencias (si estoy confundido aclarenmelo).
Desde ya muchas gracias por tu comentario.


Título: Re: Generar exe mediante script Python ¿posible?
Publicado por: Danielㅤ en 16 Febrero 2021, 00:54 am
Hola, en realidad no es que necesiten tener las librerías necesarias, sino que necesitarían mucho más que eso, el intérprete instalado como así también el compilador a ejecutable.

Si aún así vos querés que se pueda compilar a ejecutable sin tener nada instalado, lo que yo haría en tu lugar, es buscar algún servicio online que haga el trabajo, es decir envié el archivo y que la misma página web lo convierta a exe para después descargarlo, pero como eso sería gratis tendrías que estar seguro que no le metan nada extraño al exe o al código.


Saludos


Título: Re: Generar exe mediante script Python ¿posible?
Publicado por: Xyzed en 16 Febrero 2021, 03:02 am
Hola, en realidad no es que necesiten tener las librerías necesarias, sino que necesitarían mucho más que eso, el intérprete instalado como así también el compilador a ejecutable.
Hola, claro, necesitarían lo que mencionas tú también.
Si aún así vos querés que se pueda compilar a ejecutable sin tener nada instalado, lo que yo haría en tu lugar, es buscar algún servicio online que haga el trabajo, es decir envié el archivo y que la misma página web lo convierta a exe para después descargarlo, pero como eso sería gratis tendrías que estar seguro que no le metan nada extraño al exe o al código.
No encontré lo que buscaba lamentablemente, tuve que optar por una librería que se encarga de copiar el archivo en una dirección distinta (algo parecido a lo que quería hacer). Por lo tanto simplemente tuve que alterar un poco mi código y ya, obtuve lo más similar posible a lo que buscaba.

Aporto para alguien que tenga el mismo problema y desee una solución fácil:

Código
  1. import shutil ##Importamos la lib.
  2. shutil.copy("archivo.py", "Documentos/archivo.py") ##Copia el archivo denominado "archivo.py" (puedes colocar una ruta tambien) al nuevo directorio aportado, en este caso "Documentos".
  3.  
Cabe aclarar, que puedes poner este código en el mismo archivo que quieres copiar y lo hará de igual forma al ejecutarse.