2009-12-14 3 views
0

Если вы устанавливаете пакет python с помощью setuptools, то он выполняет метод в этом пакете из стандартного скрипта python, возможно ли получить путь к файлу вызывающего/исполняемого файла?Получить путь исполняемого файла из установленного пакета?

Например, файл я выполнения является /usr/foo/bar.py, который выглядит следующим образом:

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

и пакет baz был установлен с помощью Setuptools и находится в этом волшебном месте, все пакеты питона установлены при они были хорошими небольшими пакетами.

Оба __file__ и import inspect; inspect.currentframe().f_code.co_filename возвращают путь к пакетному файлу.

Возможно ли это?

+0

Это звучит неплохо. Вы просто хотите 'sys.argv [0]' вместо этого? – 2009-12-14 16:03:44

ответ

1

Используйте inspect.getouterframes() или inspect.stack(), затем получите имя файла из вызывающего кадра.

+0

'импорт проверить; Проверено инспектор.stack() [- 1] [0] .f_code.co_filename'. Благодаря! –

Смежные вопросы