我已经提到了一些网站在Windows 8.1中将pyx构建到pyd。我正在使用带有Spyder IDE的Anaconda Distribution,我开发了pyx文件并且无法构建“Anaconda命令提示符” 阿纳康达>
python setup.py build --inplace --compiler=mingw32
并尝试了
python setup.py build_ext --inplace --compiler=mingw32
收到以下错误:
File "C:\ProgramData\Anaconda3\lib\distutils\cygwinccompiler.py", line 129 in __init__
if self.ld_version >= "2.10.90":
TypeError: '>=' not supported between instances of 'NoneType' and 'str'
我的简单pyx代码是
cdef int fib(int n):
cdef int a, b, i
a, b = 1, 1
for i in range(n):
a, b = a+b, a
return a
和我的setup.py文件如下..
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize('fb.pyx'))
如何在Windows 8.1中摆脱这种情况?我想在我的套接字编程中使用Struct和Socket库。
答案 0 :(得分:3)
您的.pyx或setup.py代码AFAICT没有任何问题。 我在Windows 10上使用Anaconda3,它可以工作。
问题在于编译器。你自己安装了mingw32吗? 看起来你所拥有的任何版本都无法编译代码。 我对cygwin有同样的错误
但是,使用Visual Studio 14和borlands编译器中包含的编译器编译好的代码。
尝试--compiler = bcpp(希望已经在您的系统上)
或
尝试安装:http://landinghub.visualstudio.com/visual-cpp-build-tools 并使用--compiler = msvc运行您的编译命令(或者只是不指定编译器。)