Я конвертирую свою программу для запуска в качестве демон в Linux. Я хотел бы использовать пакет python-daemon, чтобы сохранить повторение работы. Однако мне нужно поддерживать python 2.4.
В примере, приведенном на странице, используется ключевое слово with
поэтому подразумевается python 2.5; Менеджеры контекста также перечислены как поддерживаемые с 2.5.
Могу ли я просто вызвать __enter__()
и __exit__()
самостоятельно? Или это еще не так?
Этот вопрос почти отвечает на мой вопрос, но просто пропускает его в последнюю минуту.
Насколько я могу судить по исходному коду, легко использовать python-daemon в Python 2.4. (У меня нет установки Python 2.4, чтобы попробовать.) __enter__()
и __exit__()
для DaemonContext
являются по существу псевдонимами для open()
и close()
, поэтому эквивалент
with daemon.DaemonContext():
do_main_program()
будет просто
context = daemon.DaemonContext()
context.open()
try:
do_main_program()
finally:
context.close()
Я не смог найти ничего, что могло бы сделать Python 2.5 при просмотре всего исходного кода. (Есть несколько специфических конструкций Python 2.4, хотя, как и несколько декораторов и reversed()
, поэтому он не будет работать с Python 2.3 из коробки.)