Podczas rozwiązywania tych i następnych problemów, które znalazłem, napisałem przepis w tym wątku . Odtwarzam go tutaj na wypadek, gdyby był przydatny dla innych:
Przepis krok po kroku na kompilację 64-bitowych rozszerzeń Cython w Pythonie 2.6.6 z kompilatorem mingw w systemie Windows 7 64-bit
Zainstaluj kompilator mingw
1) Zainstaluj tdm64-gcc-4.5.2.exe do kompilacji 64-bitowej
Zastosuj poprawkę do python.h
2) Zmodyfikuj python.h w C: \ python26 \ include, jak wskazano w
http://bugs.python.org/file12411/mingw-w64.patch
Modyfikuj distutils
Edytuj 2013: Uwaga niż w Pythonie 2.7.6 i 3.3.3 -mno-cygwin został ostatecznie usunięty, więc krok 3 można pominąć .
3) Usuń wszystkie parametry -mno-cygwin z wywołania gcc w klasie Mingw32CCompiler w Python26 \ Lib \ distutils \ cygwinccompiler.py
4) W tym samym module zmodyfikuj get_msvcr () tak, aby zwracała pustą listę zamiast ['msvcr90 '], gdy msc_ver ==' 1500 '.
Stwórz plik libpython26.a (nie dołączony do 64-bitowego Pythona)
Edytuj 2013: poniższe kroki 5-10 można pominąć, pobierając i instalując libpython26.a z gohlke .
5) Uzyskaj plik gendef.exe z mingw-w64-bin_x86_64- mingw_20101003_sezero.zip (plik gendef.exe nie jest dostępny w dystrybucji tmd64. Innym rozwiązaniem jest skompilowanie gendef ze źródła ...)
6) Skopiuj plik python26.dll (znajdujący się w C \ windows \ system32) do katalogu użytkownika (C: \ Users \ myname)
7) Utwórz plik python26.def za pomocą:
gendef.exe C: \ Users \ myname \ python26.dll
8) Przenieś utworzony plik python.def (znajdujący się w folderze, z którego wykonano gendef) do katalogu użytkownika
9) Utwórz plik libpython.a za pomocą:
dlltool -v --dllname python26.dll --def C: \ Users \ myname \ python26.def --output-lib C: \ Users \ myname \ libpython26.a
10) Przenieś utworzony plik libpython26.a do C: \ Python26 \ libs
Utwórz rozszerzenie .pyd
11) Utwórz testowy plik hello.pyx i plik setup.py, jak wskazano w samouczku cythona ( http://docs.cython.org/src/quickstart/build.html )
12) Skompiluj z
python setup.py build_ext --inplace
Gotowe!