2014-10-16 3 views
1

Я создал оболочку win32com для DLL, и я пытаюсь получить к ней доступ. Он работает, за исключением одной функции, называемой ReadPipeBytes. Он работает на двух моих других машинах, но я использую другую версию python. Это ошибка: «Объект не имеет атрибута« ReadPipeBytes ». Я скопировал одну и ту же DLL на другую машину (ее драйвер, у меня есть то же аппаратное обеспечение, к которому я пытаюсь получить доступ.) Я сделал сравнение в файлах-оболочках, и они почти идентичны, за исключением версий python, которые они были сгенерированы с помощью и 3.3.5 сгенерированная версия не помещает u'FunctionName ', где версия 2.7. Если я скопирую файл оболочки на компьютер, который не работает, я получаю ту же ошибку (и/или файл dict).Ошибка при доступе к одному fuction в pywin32 или win32com из python 3.3.5

1) Почему версия питона сделать разницу в чтении этого одну конкретную функцию, когда другие функции работают нормально (его не обертка?

2) Как Python не использовать функцию под названием readpipebytes, когда другие функции работают, и когда я использую те же файлы, что и на других машинах?

+0

Является ли версия Python на машине, где она не работает, может быть, 64-битная? – Werner

+0

Да, но у меня он работает на другой 64-битной машине, о которой идет речь в сумасшедшей установке pywin32. У меня есть версия pywin32 версии 2.7.5, начиная с 3.3.2 python. Как рабочие, так и неработающие машины - это 64-разрядные окна7. На отдельной машине у меня она работает на 32-битных окнах xp без проблем. Может, это не похоже на 64-битный? – laptop2d

+0

Я не думаю, что вы можете использовать Py1.7 версию pywin32 с Py3.x, и вы не можете смешивать 32 и 64-битные вещи. Другими словами, если вы используете Py3.x 64 бит, то все библиотеки и т. Д., Которые вы используете с этой версией Python, должны быть 64 бит - здесь нет эксперта, но это мое понимание. – Werner

ответ

0

Когда вы используете com язык, к которому вы обращаетесь, от него требуется такая же «bittedness», как com .dll или control. Итак, если у вас 32-битный контроль или com dll, вы должны иметь 32-битный win32com.