elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Fatal error con PyInstaller y otros metodos de empaquetado de scripts python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Fatal error con PyInstaller y otros metodos de empaquetado de scripts python  (Leído 5,555 veces)
Silver1101

Desconectado Desconectado

Mensajes: 13


Flow like water


Ver Perfil
Fatal error con PyInstaller y otros metodos de empaquetado de scripts python
« en: 25 Septiembre 2019, 13:51 pm »

Hola compañeros

He empezado hace poco con la programación Python, y me he encontrado con un problema que me esta dando bastantes quebraderos de cabeza.

Resulta que trato de empaquetar mis scripts en archivos ejecutables .app o .exe y no soy capaz de conseguirlo ni en windows ni en mac. He probado con PyInstaller py2app (en mac) y py2exe (en windows).

Con Pyintaller lo consigo solo con scripts ejecutables en shell "los tipicos print("hola mundo")". Pero cuando el programa es un GUI con tkinter es cuando me genera el problema. Cuando utilizo py2app, me genera el archivo.app sin problema, en la temrinal me sale todo OK, pero a la hora de ejecutarlo me aparece un Fatal error, y instantaneamente me reinicia la sesión del mac.

En los tutoriales que aparecen en youtube, en los manuales de python, y diferentes paginas realizan el procedimiento con muchisima facilidad. Pero yo me encuentro con un porblema detrás de otro.

¿Alguien ha topado con los mismos problemas?¿Como lo resolvisteis?
¿Que metodo utilizais vosotros para empaquetar vusestros scripts? ¿Cual considerais más sencillo?



« Última modificación: 28 Septiembre 2019, 14:33 pm por Silver1101 » En línea

EdePC
Moderador Global
***
Conectado Conectado

Mensajes: 2.042



Ver Perfil
Re: Fatal error con py2app y otros metodos de empaquetado de scripts python
« Respuesta #1 en: 25 Septiembre 2019, 14:07 pm »

Saludos,

- En caso de PyInstaller, podría ser un problema de referencias si estás utilizando --onefile, revisa este Post: https://foro.elhacker.net/scripting/icono_en_python_con_tkinter-t491930.0.html

- Si el problema es otro, tendrías que detallar más o compartir el código preblemático para analizarlo en "propias carnes".


En línea

Silver1101

Desconectado Desconectado

Mensajes: 13


Flow like water


Ver Perfil
Re: Fatal error con py2app y otros metodos de empaquetado de scripts python
« Respuesta #2 en: 27 Septiembre 2019, 11:46 am »

Muchas gracias por tu respuesta.

El error real es lo que no soy capaz de identificar.
Yo creo que algo me fatla por instalar o añadir en algun sitio porque cuando intento ejecutar el script compilado (ahora estoy hablando de pyinstaller en mac) me aparece el siguiente mensaje:

macbook-2:~ usuario$ /Users/usuario/Desktop/p/dist/app ; exit;
Traceback (most recent call last):
  File "site-packages/PyInstaller/loader/rthooks/pyi_rth__tkinter.py", line 28, in <module>
FileNotFoundError: Tcl data directory "/var/folders/_w/kq6md5vj4wg5nf8jq4bhc2ww0000gn/T/_MEIRLEfIp/tcl" not found.
[1442] Failed to execute script pyi_rth__tkinter

logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Proceso completado]


Lo que está en negrita es lo que no entiendo. Pone que hay un error para ejecutar el script pyi_rth__tkinter.py    ¿Pero donde se supone que debe estar ese script si yo ya tengo la libreria tkinter intalada previamente??
« Última modificación: 28 Septiembre 2019, 14:41 pm por Silver1101 » En línea

Silver1101

Desconectado Desconectado

Mensajes: 13


Flow like water


Ver Perfil
Re: Fatal error con PyInstaller y otros metodos de empaquetado de scripts python
« Respuesta #3 en: 28 Septiembre 2019, 14:40 pm »

Problema encontrado

El problema principal con PyInstaller y Mac es que solo funciona en versiones de MacOS anteriores a la 10.14.6, la nueva versión de MacOS tiene un error con las aplicaciones tkinter y dejan de funcionar, en el momento en que se ejecutan estas aplicaciones, el sistema se congela y vuelve a la pantalla de inicio de sesión.

Aquí he encontrado la explicación más detallada:
https://discussions.apple.com/thread/250549297

A través de este enlace encontré varias posibles soluciones al respecto:
https://github.com/pyinstaller/pyinstaller/issues/3753

Pero yo las he probado y no me han funcionado.

Solucion final: He probado PyInstaller con GUI creados con PyQt5 en vez de tkinter y funciona perfecto!!  Así que el problema está en tkinter.

Espero que esto sirva para orientar a otras personas que hayan tenido el mismo problema. Un saludo!!



En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Fatal error con PyInstaller y otros metodos de empaquetado de scripts python
« Respuesta #4 en: 28 Septiembre 2019, 20:06 pm »

Hola, recuerda que esas aplicaicones de empaquetado no son oficiales por lo cual no puedes esperar a que siempre funcionen bien o que no tengan problemas al momento de distribuirlos, python no tiene la capacidad de generar binarios ejecutables sin depender del interpretador.

Lo que tu estás buscando es golang, es un lenguaje scripting que tiene la capacidad nativa de compilar los scripts a binarios ejecutables compatibles con cualquier sistema operativo, ya sea windows mac o linux, el único problema es que su sintaxis es un poco tediosa y la curva de aprendizaje es muy alta, pero el performance es muy bueno.

Mira:

https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-python3.html
https://medium.com/rungo/working-in-go-workspace-3b0576e0534a
https://bugs.python.org/issue38280

Saludos.
En línea

Silver1101

Desconectado Desconectado

Mensajes: 13


Flow like water


Ver Perfil
Re: Fatal error con PyInstaller y otros metodos de empaquetado de scripts python
« Respuesta #5 en: 4 Octubre 2019, 17:13 pm »

Si, he estado mirando golang, pero parece bastante más complicado sobretodo para novatos como yo. De momento voy a seguir con python, mientras funcione en mi ordenador ya tengo suficiente.

Muchisimas gracias por tu aportación!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines