В процессе решения этих и следующих проблем, которые я обнаружил, я написал рецепт в этой ветке . Я воспроизвожу его здесь, если он может быть полезен другим:
Пошаговый рецепт компиляции 64-битных расширений cython с python 2.6.6 с компилятором mingw в 64-битной win 7
Установите компилятор mingw
1) Установите tdm64-gcc-4.5.2.exe для 64-битной компиляции
Примените патч к python.h
2) Измените python.h в C: \ python26 \ include, как указано в
http://bugs.python.org/file12411/mingw-w64.patch
Изменить distutils
Изменить 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).
Edit 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 --dllname python26.dll --def C: \ Users \ myname \ python26.def --output-lib C: \ Users \ myname \ 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 --inplace
Готово!