2013-10-09 1 views
3

Я пытаюсь использовать Cython для оболочки класса C++. В основном я следую примеру this page.ImportError: Ошибка загрузки DLL: недействительное приложение Win32

Я использую Windows7 64-bit, Python 2.7.4 64-bit, MinGW 4.3.3 (32/64bit) и SDK был установлен в x64 mode.

В этом случае я успешно создаю файл .pyd. Я попытался импортировать его со следующим кодом:

import sys 
sys.path.append("C:\\Rectangle") 
import rect 

Первые две линии хорошо работают. Когда я ввода третьей строки, он дал следующее сообщение:

Traceback (most recent call last): 
    File "<pyshell#2>", line 1, in <module> 
    import rect 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

Я скомпилировал расширение в 64-разрядном режиме, и каждая часть программного обеспечения, который я использовал, по крайней мере, совместим с 64-битной. Как могла произойти такая ошибка?

Могу ли я знать, как я могу обойти это?

Большое спасибо! :-)

+0

кажется, что проблема заключается в том, что вы компилируете с помощью MinGW, вы должны с помощью SDK скомпилировать ... это необходимо, чтобы заставить код работать в 64-разрядной версии Windows 7. Можете ли вы скомпилировать другие коды Cython в вашей текущей программной + аппаратной конфигурации? –

ответ

1

В итоге я переключил все на 32bit (python, wxPython и т. Д.), И теперь все в порядке.

Итак, я бы рекомендовал вам использовать команду «file rect.pyd», чтобы определить, действительно ли ваш модуль 64 бит.

+0

вы можете использовать GNUfile для окон. После установки «файл rect.pyd» http://gnuwin32.sourceforge.net/packages/file.htm – 16num