Python 3.4: компиляция модуля cython для 64-битной windows

у меня есть .модуль pyx, который я пытался скомпилировать для использования с 64-битным python 3.4 В Windows различными способами, но без успеха.

после многих проб и ошибок он компилируется с

python setup.py build_ext --inplace --compiler=mingw32

но, конечно, это не будет работать с 64-битным python.

С msvc в качестве компилятора ошибка

File "C:Python34libdistutilsmsvc9compiler.py", line 287, in query_vcvarsall
raise ValueError(str(list(result.keys())))
ValueError: ['path']
  • Windows 7
  • Microsoft Windows SDK для Windows 7 и .NET Framework 4 установлено
  • там, кажется, есть некоторые Microsoft Visual Studio 10.0 вещи в C:Program файлы (x86) (включая vcvarsall.летучая мышь)

решения, которые не вращаются вокруг дистрибутивов, также приветствуются.

- - - EDIT: дополнительная информация

теперь я изменил distutils, чтобы распознать mingw-w64 согласно http://bugs.python.org/issue11723. Затем я сделал libpython34.a используя gendef и dlltool, но получите ошибка

c:Python34libs/libpython34.a: file not recongnized: File truncated

при работе

python setup.py build_ext --inplace --compiler=mingw64

1 ответов


ОК, наконец-то мне удалось заставить его работать.

фантастические ресурсы Кристофа Гольке (http://www.lfd.uci.edu / ~gohlke / pythonlibs) являются ключевыми.

  1. установите желаемую версию Python обычным способом
  2. установите все необходимые расширения с сайта Gohlke
  3. установить MinGW-w64 из http://tdm-gcc.tdragon.net/download
  4. заплата distutils согласно http://bugs.python.org/issue11723
  5. установите соответствующую версию libpython с сайта Гольке
  6. Боб твой дядя

(пробуя всевозможные дикие предложения для этой задачи, я прошел еще много шагов, но, насколько я могу судить, это единственные, которые действительно изменили ситуацию в конце)