У меня есть программа, которая использует встроенный глобальный __file__
для предоставления пути к данным, связанным с программой, как в path_to_stuff = os.path.join(os.path.dirname(__file__),'stuff')
. Проблема в том, что когда я запускаю это с python -m cProfile myprog
, значение __file__
больше не является путем к myprog
, а скорее (по-видимому) путем к модулю cProfile, где мои вещи определенно не являются.
Я прочитал руководство , искал здесь и ничего не вижу по этому поводу. Есть ли способ либо (a) заставить cProfile оставить __file__
в покое, либо (b) узнать во время выполнения, что я работаю под cProfile, чтобы я мог инициализировать путь литеральной строкой в этом особом случае?
Редактировать: или, я полагаю, (с), есть ли лучший способ найти каталог, который всегда будет рядом с программой.py?