Esto no es un tutorial de programacion de python y gtk, solo es una solucion para que tus aplicaciones puedan ser portables. Hablamos de aplicaciones sencillas que puedes llevar en una memoria pero que para ser ejecutadas dependen de su respectivo gladefile.glade
El problema es este: Tu creas tu aplicacion y dentro de ella cargas el archivo .glade para asi obtener tu interfaz grafica. Pero para que la encuentre deberas usar la ruta completa, o bien, correr desde consola tu aplicacion, habiendo antes cambiado el directorio por aquel donde se encuentra la aplicacion y desde ahi correr con un python script.py . Este es el error que lanza:
Bueno encontre otra forma para que el script halle sus recursos y archivos necesarios para correr facilmente, solo hay que cambiar el directorio actual de trabajo, ¿Como cambiar el directorio actual de trabajo en python? Facil, en dos lineas:
Bueno el import no cuenta, por que es necesario :D para acceder a las funciones siguientes.
La linea 4 se encarga de obtener el directorio donde se encuentra tu aplicacion. Si la estubieses corriendo desde una memoria en linux devolvera algo como lo siguiente:
La linea 5 cambia el directorio actual de trabajo (normalmente cuando corres un script python el directorio de trabajo es /home/user), por el directorio de donde estas corriendo tu aplicacion, asi, todas las llamadas a archivos se pueden hacer locales por que ya estas ubicaco en la carpeta de tu aplicacionm que es donde seguramente tendras tus recursos como tu gladefile.file
Con esto ya puedes correr tu aplicacion desde tu memoria sin necesidad de consola solo haciendo doble click en ella.
El problema es este: Tu creas tu aplicacion y dentro de ella cargas el archivo .glade para asi obtener tu interfaz grafica. Pero para que la encuentre deberas usar la ruta completa, o bien, correr desde consola tu aplicacion, habiendo antes cambiado el directorio por aquel donde se encuentra la aplicacion y desde ahi correr con un python script.py . Este es el error que lanza:
glib.GError: Ha ocurrido un error al abrir el archivo «gladefile.glade»:·No existe el fichero ó directorio
Bueno encontre otra forma para que el script halle sus recursos y archivos necesarios para correr facilmente, solo hay que cambiar el directorio actual de trabajo, ¿Como cambiar el directorio actual de trabajo en python? Facil, en dos lineas:
import sys import os rDir = os.path.split(sys.argv[0])[0] os.chdir(rDir)
Bueno el import no cuenta, por que es necesario :D para acceder a las funciones siguientes.
La linea 4 se encarga de obtener el directorio donde se encuentra tu aplicacion. Si la estubieses corriendo desde una memoria en linux devolvera algo como lo siguiente:
/media/miMemoria/apps/La parte de sys.argv[0] devuelve toda la ruta junto con el nombre de tu aplicacion, por ello usamos os.path.split que partira dicha ruta en 2: La primera que contiene los directorios y la segunda que contiene el puro nombre del archivo. El utlimo par de corchetes [0] hace que solo se guarde la primera parte de la ruta.
La linea 5 cambia el directorio actual de trabajo (normalmente cuando corres un script python el directorio de trabajo es /home/user), por el directorio de donde estas corriendo tu aplicacion, asi, todas las llamadas a archivos se pueden hacer locales por que ya estas ubicaco en la carpeta de tu aplicacionm que es donde seguramente tendras tus recursos como tu gladefile.file
Con esto ya puedes correr tu aplicacion desde tu memoria sin necesidad de consola solo haciendo doble click en ella.
Comentarios
Publicar un comentario