[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