Reputation: 2769
I am totally new to cython and currently learning it.
I have a .pyx file and when I tried to compile it using the distutils module inside an ipython notebook, with the ff. code:
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = "functions_cython",
ext_modules = cythonize('../utils/cython_func.pyx'), # accepts a glob pattern
)
I got the following error:
An exception has occurred, use %tb to see the full traceback.
SystemExit: usage: __main__.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: __main__.py --help [cmd1 cmd2 ...]
or: __main__.py --help-commands
or: __main__.py cmd --help
error: option -f not recognized
And when I tried to compile it in another way using python setup.py build_ext --inplace
with the same code stored in setup.py
I get this error:
build_ext --inplace
Compiling cython_func.pyx because it changed.
Cythonizing cython_func.pyx
running build_ext
building 'utils.cython_func' extension
creating build
creating build/temp.macosx-10.10-x86_64-2.7
clang -fno-strict-aliasing -fno-common -dynamic -I/usr/local/include -I/usr/local/opt/sqlite/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c cython_func.c -o build/temp.macosx-10.10-x86_64-2.7/cython_func.o
cython_func.c:239:10: fatal error: 'numpy/arrayobject.h' file not found
#include "numpy/arrayobject.h"
^
1 error generated.
error: command 'clang' failed with exit status 1
How might the compilation be resolved?
Another question, according to cython documentation, cython codes must be compiled unlike with the python codes, why is this so?
(The goal of this is that I should be able to import a .pyx
file to ipython notebook.)
Upvotes: 0
Views: 3077
Reputation: 2769
I was able to fix this by adding another parameter include_dirs=[numpy.get_include()])
in setup to address the unfound file error 'numpy/arrayobject.h'
Just posting so that others will have reference on these types of errors.
Upvotes: 3