2013-10-09 4 views
3

Cython을 사용하여 C++ 클래스를 래핑하려고합니다. 기본적으로 나는 this page의 예를 따른다.ImportError : DLL로드 실패 : 유효한 Win32 응용 프로그램이 아닙니다.

나는 Windows7 64-bit, Python 2.7.4 64-bit, MinGW 4.3.3 (32/64bit)을 사용하고, 그리고 SDKx64 mode로 설정되어 있습니다.

이 경우 .pyd 파일을 성공적으로 빌드합니다. 다음 코드로 가져 오기를 시도했습니다.

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

첫 번째 두 줄이 제대로 작동합니다. 나는 세 번째 줄, 그것은 다음과 같은 메시지 주었다 입력 할 때 : 나는 64 비트 모드에서 확장을 컴파일

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 비트 적어도 호환됩니다. 어떻게 그런 실수가 있었습니까?

이 문제를 해결하려면 어떻게해야합니까?

감사합니다. :-)

+0

MinGW로 컴파일하고, SDK를 사용하여 컴파일해야하는 문제가있는 것처럼 보입니다.이 작업은 Windows 7 64-bit에서 코드를 작동시키기위한 필수 항목입니다. 현재 소프트웨어 + 하드웨어 구성에서 다른 Cython 코드를 컴파일 할 수 있습니까? –

답변

1

나는 32 비트 (파이썬, wxPython 등)로 모든 것을 바꿔 버렸고 모든 것이 이제는 괜찮습니다.

그래서 "file rect.pyd"명령을 사용하여 모듈이 실제로 64 비트인지 확인하는 것이 좋습니다.

+0

Windows 용 GNUfile을 사용할 수 있습니다. 일단 설치되면 "파일 rect.pyd"http://gnuwin32.sourceforge.net/packages/file.htm – 16num

관련 문제