Під час вирішення цих та наступних проблем, які я знайшов, я написав рецепт у цій темі . Я відтворюю його тут, якщо це може бути корисним для інших:
Покроковий рецепт для компіляції 64-розрядних розширень cython з python 2.6.6 з компілятором mingw у win 7 64-розрядний
Встановити компілятор mingw
1) Встановити tdm64-gcc-4.5.2.exe для 64-бітної компіляції
Застосувати патч до python.h
2) Змініть python.h в C: \ python26 \ включайте, як зазначено в
http://bugs.python.org/file12411/mingw-w64.patch
Змінення distutils
Edit 2013: Зверніть увагу, ніж у python 2.7.6 та 3.3.3 -mno-cygwin було остаточно видалено, тому крок 3 можна пропустити .
3) Усуньте всі параметри -mno-cygwin для виклику gcc у класі Mingw32CCompiler в Python26 \ Lib \ distutils \ cygwinccompiler.py
4) У цьому ж модулі змініть get_msvcr (), щоб повернути порожній список замість ['msvcr90 '] коли msc_ver ==' 1500 '.
Створіть файл libpython26.a (не входить до 64-бітного python)
Редагувати 2013: наступні кроки 5-10 можна пропустити, завантаживши та встановивши libpython26.a з gohlke .
5) Отримати gendef.exe з mingw-w64-bin_x86_64- mingw_20101003_sezero.zip (gendef.exe недоступний у розповсюдженні tmd64. Іншим рішенням є компілювати gendef з джерела ...)
6) Скопіюйте python26.dll (розміщений у C \ windows \ system32) до каталогу користувачів (C: \ Users \ myname)
7) Створіть файл python26.def за допомогою:
gendef.exe C: \ Users \ myname \ python26.dll
8) Перемістіть створений файл python.def (розташований у папці, звідки виконано gendef) у каталог користувачів
9) Створіть libpython.a за допомогою:
dlltool -v - ім'я python26.dll --def C: \ Користувачі \ моє ім'я \ python26.def --output-lib C: \ Користувачі \ моє ім'я \ libpython26.a
10) Перемістіть створений libpython26.a на C: \ Python26 \ libs
Створіть розширення .pyd
11) Створіть тестовий файл hello.pyx та файл setup.py, як зазначено в підручнику cython ( http://docs.cython.org/src/quickstart/build.html )
12) Компілюйте з
python setup.py build_ext --інсталяція
Готово!