Ir al contenido principal

Python Glade: Aplicaciones portables

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:

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

Entradas populares de este blog

Bloqueando intrusos en EchoLife HG520c

1. Entrar al portal de configuración del router. Para ello ingresa la ip publica que tengas. Cuando te pida autenticarte pon TELMEX como usuario y la clave WEP (original) de tu router como password. 1.1 Si ya tienes la direccion MAC del equipo a bloquear salta al paso 2. Para obtener la direccion MAC del equipo a bloquear, ir a la sección Avanzado del menú izquierdo y de ahí a la ultima opción Gestion de dispositivos . Ahí veras todos los dispositivos que están o han estado alguna vez conectados. Puedes dar clic en Visualizar detalles de dispositivos para así ver la dirección MAC de dicho equipo 2. En el menú izquierdo das clic en Básico para que te muestre mas opciones y de ellas clic en LAN Inalámbrica. 3. Desliza la parte derecha hacia abajo hasta llegar a la sección Filtro de dirección MAC inalámbrica. Haz clic en activo para activar el filtro y en las cajas de texto de abajo ingresa la dirección MAC a bloquear. Asegurate que en acción este seleccionado Denegar Asocia

Sweet Home 3D: Diseño 2d y 3d para planos

Hacia tiempo que usaba una aplicacion online para hacer los diseños de los planos que necesitaba, y es que a veces es muy importante tener una imagen de como van a quedar las cosas y asi juzgarla, eso de regresar todo como estaba es una lata. Entonces halle Sweet Home 3D que vaya que es bueno! Esta basado en java (mmm esperemos y eso se solucione pronto) pero responde muy bien, yo lo prove en una aspire one de esas chiquitas y aun asi los graficos en 3d pudieron verse sin problema (bueno no esperaba que se vieran bien ni siquiera esperaba que se vieran! jaja) Aqui les va un minitutorial:

Kubuntu (KDE): El boton de apagar no aparece en el menu

Este problema ocurre cuando instalamos algun otro gestor de escritorio (como son gnome o xfce), y con ello el gestor de sesiones de kde se ve reemplazado por el del otro gestor de escritorio (como por ejemplo gnome con su respectivo GDM). Bastara con regresarle a kdm el control [que se merece]. Pero advierto cuando esto pase, los otros gestores de escritorio perderan sus respectivas opciones de apagado y reinicio. Solo debes teclear en la consola esto (te pedira despues tu contraseña): sudo dpkg-reconfigure kdm Puedes sustituir kdm por el gestor de sesiones que desees como puede ser gdm Fuente