Bunları çözme sürecinde ve bulduğum aşağıdaki problemlerde bu konuya bir tarif yazdım . Başkaları için yararlı olabilir diye burada yeniden üretiyorum:
Win 7 64-bit'te mingw derleyicili python 2.6.6 ile 64-bit cython uzantılarını derlemek için adım adım tarif
Mingw derleyicisini kurun 1) 64-bit derleme için tdm64-gcc-4.5.2.exe dosyasını kurun
Python.h'ye yama uygulayın
2) http://bugs.python.org/file12411/mingw-w64.patch adresinde belirtildiği gibi C: \ python26 \ include içindeki python.h dosyasını değiştirin
Distutils
Edit 2013'ü değiştirin : python 2.7.6 ve 3.3.3'tekine dikkat edin -mno-cygwin nihayet kaldırıldı, böylece adım 3 atlanabilir .
3) Python26 \ Lib \ distutils \ cygwinccompiler.py'deki Mingw32CCompiler sınıfındaki gcc çağrısı için -mno-cygwin'in tüm parametrelerini ortadan kaldırın
4) Aynı modülde, get_msvcr () 'yi [' msvcr90 yerine boş bir liste döndürmek için değiştirin '] msc_ver ==' 1500 'olduğunda.
Libpython26.a dosyasını oluşturun (64 bit python'a dahil değildir)
Edit 2013: gohlke'den libpython26.a'yı indirip kurarak 5-10 arasındaki adımlar atlanabilir .
5) mingw-w64-bin_x86_64- mingw_20101003_sezero.zip'ten gendef.exe'yi edinin (gendef.exe tmd64 dağıtımında mevcut değildir. Başka bir çözüm de gendef'i kaynaktan derlemektir ...)
6) python26.dll dosyasını kopyalayın (C konumunda bulunur \ windows \ system32) kullanıcı dizinine (C: \ Users \ myname)
7) python26.def dosyasını şununla oluşturun:
gendef.exe C: \ Kullanıcılar \ myname \ python26.dll
8) Üretilen python.def dosyasını (gendef'in yürütüldüğü klasörde bulunur) kullanıcı dizinine taşıyın 9) libpython.a dosyasını
şununla oluşturun:
dlltool -v --dllname python26.dll --def C: \ Users \ myname \ python26.def --output-lib C: \ Users \ myname \ libpython26.a
10) Oluşturulan libpython26.a dosyasını C: \ Python26 \ libs konumuna taşıyın
.Pyd uzantınızı
oluşturun 11) Cython öğreticisinde ( http://docs.cython.org/src/quickstart/build.html ) belirtildiği gibi bir test hello.pyx dosyası ve bir setup.py dosyası oluşturun
12)
python setup.py build_ext --inplace
Bitti!