У меня есть проект Python, разработанный коллегой, в котором win32com используется для управления приложением: CANoe from Vector.
Когда он запускает сценарий * .py из PyCharm (2019.2.5 ) все в порядке, если он использовал auto-py-to-exe для преобразования сценария python в * .exe, а затем запускал * .exe, все в порядке, в обоих случаях сценарий работает отлично.
Теперь проблема в следующем: если я пытаюсь запустить сценарий * .py из PyCharm (2020.1.2), модуль win32com выдает исключение:
raise AttributeError("'%s' object has no attribute '%s'" % (repr(self), attr))
AttributeError: '<win32com.gen_py.CANoe 11.0 Type Library.ITestEnvironment instance at 0x2039251561776>' object has no attribute 'TestModules'
От чего Я проверил, что в COM-библиотеке есть 2 диспетчерских интерфейса: ITestEnvironment и ITestEnvironment2 , и только ITestEnvironment2 имеет атрибут TestModules , и кажется, что в В моем случае сценарий каким-то образом не учитывает правильный интерфейс.
Если я использую auto-py-to-exe для преобразования сценария python в * .exe, а затем выполняю * .exe, все работает прекрасно. Если он преобразует сценарий в * .exe, а затем я запускаю его на своем P C, или я локально конвертирую сценарий в * .exe и запускаю его на своем P C, в обоих случаях выход из сценария то же самое.
Я пробовал:
- Установите ту же версию PyCharm, что и он
- Запустите код из Visual Studio 2017
- Обновите pywin32 до последней версии (228)
во всех случаях результат один и тот же.
Я использую ту же версию Python, что и он: Py 3.6.7.
Знает ли кто-нибудь, почему win32com ведет себя по-разному при запуске из * .exe или * .py, а также почему он ведет себя по-разному на разных ПК?