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...

Importar contactos desde google gmail a Evolution

Bueno con estos pasos podras tener todos los contactos que usas en Google Gmail directo en Evolution para que cuando desees mandar un correo tengas disponible las direcciones de tus contactos. Primero deberas abrir la ventana principal de Evolution y seleccionar la seccion Contactos . Una vez ahi debes ir a la opcion Nuevo que se encuentra arriba a la izquierda. Y desde ahi...

Instalando capturadora de video USB EasyCAP

Tenia rato que no ponia algo aqui pero bueno...un chico de prepa me intimido :S... Tengo una capturadora de video de la marca EasyCAP y se me ocurrio usarla para capturar la salida de mi celular asi que aqui van los pasos: ADVERTENCIA: NO me hago responsable de nada de lo que pueda pasar si sigues estos pasos. En mi caso, el driver funciona. No puedo asegurar nada más. Es un módulo del kernel, por lo que puede producir ‘kernel panics’ y dejar congelado tu PC. 0. No conectes aun el EasyCAP, si ya lo conectaste entonces desconectalo para continuar. 1. Los controladores vienen de la mano de rmt1947 como un projecto abierto y lo puedes encontrar aqui , descargalo y extraelo a un lugar seguro. 2. Por ahora el driver no viene precompilado asi que habra que compilarlo, pero antes asegurate que tienes las utilidades: sudo apt-get install build-essential mplayer 3. Ahora dirijete a la carpeta donde extrajiste el controlador y ejecuta ahi el comando. Si aun con sudo marca permiso ...