[Python-es] No se encuentra el atributo __file__ en el módulo __main__

Olemis Lang (Simelix) olemis+py en gmail.com
Mie Ene 27 22:01:08 CET 2010


2010/1/27 Oswaldo Hernández <listas en soft-com.es>:
> Olemis Lang (Simelix) escribió:
>>
>> 2010/1/27 Chema Cortes <pych3m4 en gmail.com>:
>>  ...
>>>
>>> También se podría probar una alternativa para conocer la ruta del
>>> fichero con sys.argv[0]
>>>
>> ....
>> por lo que supongo q sys.argv sea más o menos lo que se busca ... pero
>> no solo, porq sino no funcionaría si se ejecuta esto
>>
>> {{{
>> #!sh
>>
>> $ python mejor_imposible.py
>> }}}
>>
>> ... puesto a q la línea de comandos comenzaría con `python` . Ahora,
>> como falla el `__file__` realmente no tengo idea de cómo resolver esto
>> de manera confiable.
>>
>> Qué creen Uds ?
>>
>
> Si funciona, si lo que quieres es saber que se ejecutó a nivel de sistema
> operativo, no el modulo en el que te encuentres.
>
> Python se autoexcluye en sys.argv[0], por lo que:
>
> os.path.split(sys.argv[0])[0] -> path aplicacion
> os.path.split(sys.argv[0])[1] -> nombre de aplicacion (.py, .exe, ...)
>
> Yo tuve problemas al usar __file__ cuando la aplicación estaba empaquetada
> con py2exe, desde que uso esto no he vuelto a tener este problema.
>

{{{
$ echo "import sys; print sys.argv[0]" > f.py
$ python f.py
f.py
}}}

Confirmado ! Gracias !

-- 
Regards,

Olemis.

Blog ES: http://simelo-es.blogspot.com/
Blog EN: http://simelo-en.blogspot.com/

Featured article:
Mejorando nuestro software libre con Bitbucket : Mercurial Queues -
http://feedproxy.google.com/~r/simelo-es/~3/ZzIZt_W-_8Y/mejorando-nuestro-software-libre-con.html



Más información sobre la lista de distribución Python-es