Я искал, и это, кажется, простой вопрос без простого ответа.
У меня есть файл 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
без необходимости фактически записывать фактическое значение в каждом script.
Нужно ли мне пройти через inspect
, чтобы получить желаемое значение?
Спасибо.
EDIT: Как сказано, есть ответы (я искал), но не простые ответы. Либо используйте inspect
, используйте traceback
, либо манипулируйте __file__
и __package__
и выполните некоторую подстроку, чтобы получить ответ. Но ничего такого простого, как если бы у меня был класс в модуле, я мог бы просто использовать myClass.__module__
, и я бы получил ответ, который я хочу. Использование __name__
(к сожалению) бесполезно, поскольку оно всегда __main__
.
Кроме того, это в python 2.6, и я не могу использовать другие версии.