apsheduler, вызывающий скрипт Python, генерирует CoInitialize, который не был вызван.

Я пытаюсь запускать скрипт python каждые 30 минут:

from apscheduler.schedulers.background import BackgroundScheduler
sched = BackgroundScheduler()
def job():
    runfile('C:/temp/KIC53_Monitor.py', 
    wdir='C:/temp')
sched.add_job(job, 'cron', minute='15,45', second=0)
sched.start()

Я получаю эту ошибку:

IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch) pywintypes.com_error: (-2147221008, 'CoInitialize не был вызван.', None, None)

Я думал, что это довольно прямолинейно, но это первый раз, когда я использовал apscheduler, так что я знаю.

Любая помощь будет оценена

Спасибо


person C0ppert0p    schedule 16.06.2017    source источник


Ответы (1)


Проблема была как в apscheduler, так и в скрипте Python, который он планировал. Сценарий Python содержал этот оператор импорта:

import win32com.client as com

Когда оператор импорта удаляется, apscheduler работает нормально (но скрипт python становится бесполезным. Не оптимальное решение). Теперь возникает проблема: «Как мне импортировать процесс com, не нарушая apscheduler?»...

но это другой вопрос.

person C0ppert0p    schedule 18.06.2017