lorsque i module import utilisantcomment obtenir l'emplacement du module
import module_name
est-il possible de voir où dans mon disque dur est que le module situé?
lorsque i module import utilisantcomment obtenir l'emplacement du module
import module_name
est-il possible de voir où dans mon disque dur est que le module situé?
Il est à noter que les paquets ont __file__
attribut qui pointe vers __init__.py
, ils ont aussi __path__
qui pointe vers le répertoire du paquet. Vous pouvez donc utiliser hasattr(module_name, '__path__') and module_name.__path__[0] or module_name.__file__
.
Exemple (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']
Avez-vous des preuves? Je l'ai juste essayé sur un paquet de moi-même, '__file__' est là (' package/__ init __. Pyc'), comme il se doit, vu que l'import "package" est juste un module appelé '__init__'. ('package .__ path__ == ['package']') –
@Chris Mise à jour, merci. – khachik
qu'en est-il des fonctions? Est-ce que l'emplacement peut également être déterminé (bien l'autre option semble être de simplement vérifier le chemin du module à partir duquel il est importé et espérer qu'il n'y a pas de mangling entre –
import module_name
module_name.__file__
Essayez: module_name.__file__
.
Si vous voulez « inspecter » un objet, utilisez: inspect
Vous pouvez utiliser le fichier du module attribut pour trouver l'emplacement.
import sys print sys.__file__
en double de: http://stackoverflow.com/questions/269795/how-do-i-find-the-location-of-python-module-sources – Hugo