Re: Segun se invoque programa.py
Juan M Puertas <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
lasizoillo ha escrito: "... busca algún argv[0] por el código (es la variable con el nombre
del programa), que creo que van a ir por allí los tiros ;-) "
* ¡Exacto!. :-) La clave está aquí:
#directories
PREFIX=os.path.split(os.path.split(sys.argv[0])[0])[0]
DATADIR=os.path.join(PREFIX,'share','openastro.org')
Es decir; que el programa obtiene el camino en el que se está ejecutando la aplicación, y de éste deduce dónde se encuentra la carpeta "openastro.org". En este caso, está en "/usr/share"
Por lo tanto se arregla creando la carpeta "share" en el mismo camino en que se encuentra "programa.py", y copiando dentro de "share" la carpeta "openastro.org" que necesita la aplicación.
El problema ya ha sido resuelto pero me queda la curiosidad de que "programa.py" está en el mismo directorio que los ejecutables de python; es decir: "/usr/bin", y su carpeta "openastro.org", se instala en "/usr/share". ¿Porqué cuando se invoca con el nombre del programa, éste encuentra su carpeta de trabajo en "/usr/share", y cuando se invoca con Python o el entorno de desarrollo no?.
Debe ser alguna particularidad de Linux/Unix que desconozco...
Muchas gracias a todos, y al ganador de una cerveza con una buena tapa en Granada...¡lasiozillo! :-)
Juanma.-
P.D. Si no fuera por la crisis de este momento, os invitaba a todos. :-)
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes