cimport numpy在cython中不工作;错误消息不清楚(对我来说)

2024-05-11 09:10:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我是cython(和python)的新手,正在尝试以一种可以定义变量类型的方式导入numpy。我的理解是,我必须使用“cimport numpy”,但是,它失败了,我无法从错误消息中得到任何信息。以下是我的代码,可以归结为关键部分:

我现在的实际模块除了:

cimport numpy as np

这是我的setup.py:

from distutils.core import setup
from Cython.Build import cythonize

setup(
name = "test",
ext_modules = cythonize('testcimport.pyx'),
)

这就是我试图编译时得到的:

In[1]: %run setup.py build_ext --inplace

Compiling testcimport.pyx because it changed. Cythonizing testcimport.pyx running build_ext building 'testcimport' extension 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 An exception has occurred, use %tb to see the full traceback.

SystemExit: error: command 'gcc' failed with exit status 1

In [2]: %tb

--------------------------------------------------------------------------- SystemExit Traceback (most recent call last) /Applications/Canopy.app/appdata/canopy-1.1.0.1371.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/IPython/utils/py3compat.pyc in execfile(fname, *where) 181 else: 182 filename = fname --> 183 builtin.execfile(filename, *where)

/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 in setup(**attrs) 167 raise 168 else: --> 169 raise SystemExit, "error: " + str(msg) 170 171 return dist

SystemExit: error: command 'gcc' failed with exit status 1

正如您可能已经从这个输出中了解到的,我正在使用MacOSX上的Canopy。

如果我使用“import numpy”而不是“cimport numpy”,一切都正常,但是我不能声明变量。

谢谢!

麦芽

ps:我认为我仍然需要单独执行“import numpy”来访问numpy中的普通python函数,但这并没有改变本例中的任何内容——我仍然得到相同的错误消息。


Tags: pyimportbuildnumpyappsetupextx86