2009-12-14 6 views
0

Si on installe un paquet python en utilisant setuptools, puis exécute une méthode dans ce paquet à partir d'un script python standard, est-il possible d'obtenir le chemin du fichier appelant/exécutant?Récupère le chemin du fichier en cours d'exécution à partir d'un paquet installé?

Par exemple, le fichier que je suis l'exécution est /usr/foo/bar.py, qui ressemble à ceci:

import baz 
baz.get_current_path() 
# should print /usr/foo/bar.py 

et le paquet baz a été installé à l'aide setuptools et se trouve dans ce lieu magique tous les paquets Python sont installés lorsque ils ont été de bons petits paquets.

Les deux __file__ et import inspect; inspect.currentframe().f_code.co_filename renvoient le chemin du fichier package'd.

Est-ce possible?

+0

Cela semble être une mauvaise idée. Voulez-vous simplement 'sys.argv [0]' à la place? –

Répondre

1

Utilisez inspect.getouterframes() ou inspect.stack(), puis obtenez le nom du fichier de l'image appelante.

+0

'import inspect; inspect.stack() [- 1] [0] .f_code.co_filename' a fait l'affaire. Merci! –

Questions connexes