使用Cython界面为时间试验运行迭代循环以获得几何级数。
编译时出错(shift-enter):CompileError:command' gcc'退出状态1失败
%load_ext Cython
%%cython
def geo_prog_cython(double alpha, int n):
cdef double current = 1.0
cdef double sum = current
cdef int i
for i in range(n):
current = current * alpha
sum = sum + current
return sum
错误:
//anaconda/lib/python3.5/distutils/command/build_ext.py in build_extension(self, ext)
530 debug=self.debug,
531 extra_postargs=extra_args,
--> 532 depends=ext.depends)
533
534 # XXX outdated variable, kept here in case third-part code
答案 0 :(得分:3)
我能够使用Anaconda3无错误地重现这一点:
%load_ext Cython
%%cython -a
def geo_prog_cython(double alpha, int n):
cdef double current = 1.0
cdef double sum = current
cdef int i
for i in range(n):
current = current * alpha
sum = sum + current
return sum
示例:
geo_prog_cython(0.5, 5)
1.96875
代码似乎很好。这一定是您设置的问题。
答案 1 :(得分:3)
我知道这个问题已经很老了,但我认为这可能有助于其他人。
我在Windows上遇到了一个旧的Py2.7项目的问题。
如果在Windows上,并使用Py2.7检查您是否安装了用于Python的MS Visual Studio C ++编译器(download link)。不确定Py3需要做哪些更改。
对于您的anaconda环境,找到Lib\distutils
目录并创建一个distutils.cfg
文件(如果尚未存在,否则只需根据需要修改当前文件)。
您希望构建配置如下所示。
[build]
compiler=msvc
如果在Linux上,请确保您有可用的devel
个软件包,例如
Ubuntu:apt-get install python-devel