Проблема относительного пути службы Windows в Python - PullRequest
0 голосов
/ 25 февраля 2011

Я написал небольшую Службу Windows, скомпилированную в исполняемый файл с использованием py2exe, который я прочитал из файла.Это прекрасно работает - однако - я могу использовать только абсолютный путь для доступа к файлу, использование относительного пути не будет работать.В .net вы можете сделать что-то вроде:

System.Reflection.Assembly.GetEntryAssembly().Location

Чтобы получить путь к файлу .exe, есть ли опция, подобная этой, но для Python?

Best Regards,

Андерс

1 Ответ

1 голос
/ 25 февраля 2011

У вас есть несколько вариантов. Если у вас уже есть объект модуля, вы можете сделать <module>.__file__, чтобы получить путь:

>>> import time
>>> time.__file__
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/time.so'

Однако, часто вы хотите знать местоположение вашего текущего модуля, и в этом случае вы можете использовать:

import inspect

path = inspect.currentframe().f_code.co_filename

(Имейте в виду, что это может быть что угодно, что может быть загружено Python - так что это могут быть .pyd, .pyc, .so, .dll и т. Д.)

...