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

Olemis Lang (Simelix) olemis+py en gmail.com
Mie Ene 27 20:33:29 CET 2010


2010/1/27 Chema Cortes <pych3m4 en gmail.com>:
> El día 26 de enero de 2010 23:33, Ing. Nestor Alonso Torres
> <nalonso en getrans.cu> escribió:
>
>> ¿Probaste esto?
>>
>> import os
>> print os.getcwd()
>
> El directorio de trabajo no tiene porqué coincidir con el directorio
> donde esté el script.
>

+1

> El atributo __file__ debería dar siempre la ruta al módulo.
> Necesitaríamos más información sobre cómo se está ejecutando el
> código, sobre todo saber el nombre real del módulo que se importa.

Doble click a un .py en Windows (supongo). El nombre real es
`mejor_imposible.py` ...
XD.

IOW es un módulo q yo mismo he hecho, no creo q por ahí esté la causa
y el nombre no tiene caracteres raros ;o)

> También estaría bien saber si se está usando una versión moderna de
> python o bien es una versión antigua con algún fallo.
>

2.6.4

>
> También se podría probar una alternativa para conocer la ruta del
> fichero con sys.argv[0]
>
> import os, sys
>
> dirname=os.path.dirname(os.path.abspath(sys.argv[0]))

Frederic Mantegazza me sugirió algo parecido cuando pregunté esto en
la lista de la AFPy [1]_ (con referencia por si se motivan a echar un
vistazo para practicar el francés ... Olé !) q se parece a otra
sugerencia [2]_

{{{
#!python

if hasattr(sys, "frozen"):
   path = os.path.dirname(os.path.abspath(sys.argv[0]))
else:
   path = os.path.dirname(__file__)
}}}

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 ?

.. [1] Re: [Python-Fr] On ne trouve pas d'attrib __file__ dans le
module __main__
        (https://listes.aful.org/wws/arc/python/2010-01/msg00043.html)

.. [2] WhereAmI
        (http://www.py2exe.org/index.cgi/WhereAmI)

-- 
Regards,

Olemis.

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

Featured article:
Microsoft firma acuerdo con la PSF. ¿Python para Visual Studio?  -
http://simelo-es.blogspot.com/2010/01/microsoft-firma-acuerdo-con-la-psf.html



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