Я искал, и это кажется простым вопросом без простого ответа.Как получить текущий текущий путь/имя пула
У меня есть файл a/b/c.py
, который будет называться python -m a.b.c
. Я хотел бы получить значение a.b.c
на уровне модуля.
USAGE = u'''\
Usage:
python -m %s -h
''' % (what_do_i_put_here,)
Так что, когда я получаю возможность -h
, отобразилась USAGE
без необходимости фактически записать фактическое значение каждого сценария.
Нужно ли мне пройти через inspect
, чтобы получить требуемое значение?
Спасибо.
EDIT: Как уже говорилось, есть ответы (я искал), но не простые ответы. Используйте либо inspect
, либо используйте traceback
, либо манипулируйте __file__
и __package__
и выполните подстроку, чтобы получить ответ. Но ничего такого простого, как если бы у меня был класс в модуле, я мог бы просто использовать myClass.__module__
, и я бы получил ответ, который я хочу. Использование __name__
(к сожалению) бесполезно, так как это всегда __main__
.
Кроме того, это в python 2.6, и я не могу использовать другие версии.
Помогает ли вам эта нить? http://stackoverflow.com/questions/247770/retrieving-python-module-path – birryree
Существует несколько кандидатов для дубликатов: http://stackoverflow.com/questions/4288905/how-do-you-show-the-path -of-the-current-running-python-module, http://stackoverflow.com/questions/1450478/how-do-get-the-name-of-a-running-python-script –
Я думаю, что это не является дубликатом. В предыдущих комментариях упомянутые проблемы направлены на то, чтобы получить путь к исполняемому файлу в файловой системе, тогда как ПО хочет получить текущий python [package] (http://docs.python.org/ py3k/tutorial/modules.html # packages) + [module] (http://docs.python.org/py3k/tutorial/modules.html) – gecco