#python #windows #windows-services #scheduled-tasks #nssm
#python #Windows #windows-services #запланированные задачи #nssm
Вопрос:
У меня ситуация, когда я должен запустить python.exe как услуга в NSSM. Для тестирования я создал файл .exe, в котором есть только импорт pandas как pd. Я успешно создал службу в NSSM. Но когда я запускаю службу, я получаю сообщение об ошибке windows не удалось запустить службу на локальном компьютере, служба не вернула сообщение об ошибке.
Что еще я могу сделать для решения этой проблемы?
Поверьте мне, я перепробовал все решения в stack overflow.
- Я закрыл cmd при запуске службы.
- Передал все управление сетевой службе
Комментарии:
1. Pandas не является пакетом по умолчанию, поэтому вы, вероятно, установили его только под своей учетной записью пользователя, и СЕТЕВАЯ СЛУЖБА пользователя не может получить доступ к вашим пользовательским пакетам или всей установке python в appdata.
2. Как с этим справиться?
Ответ №1:
- Установите Python в Program Files или другую общую папку, если это еще не сделано.
- Если ваша служба запущена как СЕТЕВАЯ СЛУЖБА, запустите CMD с psexec в качестве СЕТЕВОЙ СЛУЖБЫ:
psexec -i -u "nt authoritynetwork service" cmd.exe
- Установите pandas с помощью этого cmd.
- В cmd проверьте, можете ли вы запускать python и импортировать pandas.
- Поскольку службы не могут иметь windows, вам нужно как-то проверить результат вашей программы. Например, перенаправить исключение в файл:
try: import pandas # do something except Exception as e: with open(r'c:/service_output.txt', 'wt ') as fd: fd.write(repr(e))