У Вас есть источник? Во многих случаях различие между автономным приложением и сервисом минимально.
большинство изменений связано со сцеплением кода в менеджера по сервису правильно. После того, как сделанный, Вы будете знать, что любыми проблемами, которые происходят, является результат Вашего программирования и не любой другой программы.
Проверьте модуль inspect:
inspect.stack ( )
вернет информацию о стеке.
Внутри функции inspect.stack () [1]
вернет стек вашего вызывающего. Оттуда вы можете получить дополнительную информацию об имени вызывающей функции, модуле и т. Д.
Подробнее см. В документации:
http://docs.python.org/library/inspect.html
Также, У Дуга Хеллмана есть хорошая рецензия на модуль inspect в его серии PyMOTW:
http://pymotw.com/2/inspect/index.html#module-inspect
РЕДАКТИРОВАТЬ: Вот код, который делает то, что вы хотите , Я думаю:
def info(msg):
frm = inspect.stack()[1]
mod = inspect.getmodule(frm[0])
print '[%s] %s' % (mod.__name__, msg)
Я не рекомендую это делать, но вы можете достичь своей цели следующим способом:
def caller_name():
frame=inspect.currentframe()
frame=frame.f_back.f_back
code=frame.f_code
return code.co_filename
Затем обновите существующий метод следующим образом:
def info(msg):
caller = caller_name()
print '[%s] %s' % (caller, msg)