cuando la importación del módulo víacómo obtener la ubicación del módulo
import module_name
es posible ver donde en mi disco duro se encuentra ese módulo?
cuando la importación del módulo víacómo obtener la ubicación del módulo
import module_name
es posible ver donde en mi disco duro se encuentra ese módulo?
Vale la pena mencionar que los paquetes tienen __file__
atributo que apunta a __init__.py
, también tienen __path__
que apunta al directorio del paquete. Entonces puede usar hasattr(module_name, '__path__') and module_name.__path__[0] or module_name.__file__
.
Ejemplo (en REPL):
import socket, SOAPpy # SOAPpy is a package
socket.__file__
# .../python2.5/socket.pyc
socket.__path__
# AttributeError: 'module' object has no attribute '__path__'
SOAPpy.__file__
# .../2.5/site-packages/SOAPpy/__init__.pyc
SOAPpy.__path__
# ['.../2.5/site-packages/SOAPpy']
¿Tiene pruebas? Acabo de probarlo en un paquete mío, '__file__' está ahí (' paquete/__ init __. Pyc'), como debería ser, ya que la importación del "paquete" es solo un módulo llamado '__init__'. ('paquete .__ path__ == ['paquete']') –
@Chris Actualizado, gracias. – khachik
¿qué hay de las funciones? también se puede determinar la ubicación (la otra opción parece ser simplemente verificar la ruta del módulo desde el que se está importando y esperar que no haya ningún problema entre ellas. –
import module_name
module_name.__file__
Probar: module_name.__file__
.
Si desea 'inspeccionar' un objeto, utilice: inspect
Usted puede utilizar archivo atributo del módulo para encontrar la ubicación.
import sys print sys.__file__
Duplicado de: http://stackoverflow.com/questions/269795/how-do-i-find-the-location-of-python-module-sources – Hugo