Mal*_*lte 5 python numpy cython
我是cython(和python)的新手,我试图以一种我可以定义变量类型的方式导入numpy.我的理解是我必须使用"cimport numpy",然而,它失败了,我无法从错误消息中得到任何结果.这是我的代码归结为关键部分:
此时我的实际模块除了:
cimport numpy as np
Run Code Online (Sandbox Code Playgroud)
这是我的setup.py:
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = "test",
ext_modules = cythonize('testcimport.pyx'),
)
Run Code Online (Sandbox Code Playgroud)
这是我在尝试编译时得到的:
在[1]中:%运行setup.py build_ext --inplace
编译testcimport.pyx因为它改变了.cythonizing testcimport.pyx运行build_ext构建'testcimport'扩展名gcc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -DNDEBUG -g -O3 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -I/Applications/Canopy.app/appdata/canopy-1.1.0.1371.macosx-x86_64/Canopy.app/Contents/include/python2.7 -c testcimport.c -o build /temp.macosx-10.6-x86_64-2.7/testcimport.o发生异常,使用%tb查看完整的回溯.
SystemExit:错误:命令'gcc'失败,退出状态为1
在[2]中:%tb
-------------------------------------------------- ------------------------- SystemExit Traceback(最近一次调用最后一次)/Applications/Canopy.app/appdata/canopy-1.1.0.1371.macosx- execfile中的x86_64/Canopy.app/Contents/lib/python2.7/site-packages/IPython/utils/py3compat.pyc(fname,*where)181 else:182 filename = fname - > 183 builtin .execfile(filename,*哪里)
/Users/malte/Documents/setup.py in()4 setup(5 name ="test",----> 6 ext_modules = cythonize('testcimport.pyx'),7)
设置中的/Applications/Canopy.app/appdata/canopy-1.1.0.1371.macosx-x86_64/Canopy.app/Contents/lib/python2.7/distutils/core.pyc(**attrs)167引发168其他: - > 169提升SystemExit,"错误:"+ str(msg)170 171 return dist
SystemExit:错误:命令'gcc'失败,退出状态为1
正如你可能已经从这个输出中找到的那样,我在MacOSX上使用了Canopy.
如果我使用"import numpy"而不是"cimport numpy",一切正常,但是我不能声明变量.
谢谢!
马尔特
ps:我认为我仍然需要单独执行"import numpy"来访问numpy中的普通python函数,但这并没有改变这个例子中的任何内容 - 我仍然得到相同的错误消息.
你必须使用两者:
cimport numpy
import numpy
Run Code Online (Sandbox Code Playgroud)
第一个允许您访问Numpy C API,以便您可以声明数组缓冲区和变量类型.
第二个允许您访问Numpy Python函数.
不要担心在相同的变量空间中使用相同的名称('numpy'),因为Cython处理这个...
编辑(来自评论):似乎Cython没有找到Numpy C API ...你能尝试添加:
-I.../Python27/Lib/site-packages/numpy/core/include
到编译器命令行...(检查路径是否适合您的系统)
| 归档时间: |
|
| 查看次数: |
5127 次 |
| 最近记录: |