Диспетчер python win32com завершается с ошибкой CrystalRuntime.Application (проблема 64-битной версии) - PullRequest
0 голосов
/ 15 декабря 2011

Существенные детали здесь следующие:

  • Windows Server 2008 64bit
  • Python26 64bit
  • Visual Studio 2008 (команда), которая устанавливает Crystal Reports (32-разрядная и 64-разрядная среда выполнения)

Моя проблема заключается в следующем сбое кода при вызове Dispatch ('CrystalRuntime.Application') , это работало нормально на той же 32-битной конфигурации ОС, как указано выше.

Ошибка:

(-2147221164, 'Class not registered', None, None)

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

Я даже запустил makepy.py в 'Библиотеке времени выполнения Crystal Reports ActiveX Designer' , которая содержит com-интерфейс, который я пытаюсь создать, но даже это не дает результата.

Я знаю, что Crystal установлен правильно, так как он работает отлично, и я вижу, что классы ком зарегистрированы правильно.

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

Любые мысли, пожалуйста, имейте в виду, я не программист Python любой величины ...

import os
import sys
import re
import time
from win32com.client import Dispatch
import pythoncom

def main():

    try:
        app = Dispatch('CrystalRuntime.Application')
        print app
    except pythoncom.com_error, e:
        print "(crystal reports not installed?): '%s'" % e
        return 0

    print 'Success!!!'


if __name__ == '__main__':
    main()

1 Ответ

0 голосов
/ 15 декабря 2011

Когда я использую py26 с Excel, я обнаружил, что этот синтаксис работает лучше.

Excel_App = win32com.client.gencache.EnsureDispatch('Excel.Application')

Может быть, это можно изменить, чтобы соответствовать отчетам о кристаллах ..

App= win32com.client.gencache.EnsureDispatch('CrystalRuntime.Application')
...