Selama proses pemecahan ini dan masalah berikut yang saya temukan, saya menulis resep di utas ini . Saya mereproduksinya di sini seandainya bisa bermanfaat bagi orang lain:
Resep langkah demi langkah untuk mengkompilasi ekstensi cython 64-bit dengan python 2.6.6 dengan kompiler mingw di win 7 64-bit
Instal kompiler mingw
1) Instal tdm64-gcc-4.5.2.exe untuk kompilasi 64-bit
Terapkan patch ke python.h
2) Ubah python.h di C: \ python26 \ include seperti yang ditunjukkan di
http://bugs.python.org/file12411/mingw-w64.patch
Modifikasi distutils
Sunting 2013: Catatan daripada di python 2.7.6 dan 3.3.3 -mno-cygwin akhirnya dihapus sehingga langkah 3 dapat dilewati .
3) Hilangkan semua parameter -mno-cygwin dari panggilan ke gcc di kelas Mingw32CCompiler di Python26 \ Lib \ distutils \ cygwinccompiler.py
4) Dalam modul yang sama, modifikasi get_msvcr () untuk mengembalikan daftar kosong alih-alih ['msvcr90 '] ketika msc_ver ==' 1500 '.
Buat file libpython26.a (tidak termasuk dalam 64 bit python)
Edit 2013: langkah 5-10 berikut dapat dilewati dengan mengunduh dan menginstal libpython26.a dari gohlke .
5) Dapatkan gendef.exe dari mingw-w64-bin_x86_64- mingw_20101003_sezero.zip (gendef.exe tidak tersedia di distribusi tmd64. Solusi lain adalah mengompilasi gendef dari sumber ...)
6) Salin python26.dll (terletak di C \ windows \ system32) ke direktori pengguna (C: \ Users \ myname)
7) Buat file python26.def dengan:
gendef.exe C: \ Users \ myname \ python26.dll
8) Pindahkan file python.def yang dihasilkan (terletak di folder tempat gendef dieksekusi) ke direktori pengguna
9) Hasilkan libpython.a dengan:
dlltool -v --dllname python26.dll --def C: \ Users \ myname \ python26.def --output-lib C: \ Users \ myname \ libpython26.a
10) Pindahkan libpython26.a yang dibuat ke C: \ Python26 \ libs
Buat ekstensi .pyd Anda
11) Buat file test hello.pyx dan file setup.py seperti yang ditunjukkan dalam tutorial cython ( http://docs.cython.org/src/quickstart/build.html )
12) Kompilasi dengan
python setup.py build_ext --inplace
Selesai!