Reputation: 95
I am trying to cimport
NumPy into a Python 2.7 shell from a .pyx
file, but it keeps giving me the same error:
I made a .pyx
file called numpyx
just to see if it was part of the bigger code I was running, the file contains:
cimport numpy as np
a = np.arange(0,10)
print 'a= ',a
I get the following error every time:
Traceback (most recent call last):
File "<pyshell#82>", line 1, in <module>
import numpyx
File "C:\Users\Scott\AppData\Roaming\Python\Python27\site-packages\pyximport \pyximport.py", line 335, in load_module
self.pyxbuild_dir)
File "C:\Users\Scott\AppData\Roaming\Python\Python27\site-packages\pyximport\pyximport.py", line 183, in load_module
so_path = build_module(name, pyxfilename, pyxbuild_dir)
File "C:\Users\Scott\AppData\Roaming\Python\Python27\site-packages\pyximport\pyximport.py", line 167, in build_module
reload_support=pyxargs.reload_support)
File "C:\Users\Scott\AppData\Roaming\Python\Python27\site-packages\pyximport\pyxbuild.py", line 85, in pyx_to_dll
dist.run_commands()
File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "C:\Users\Scott\AppData\Roaming\Python\Python27\site-packages\Cython\Distutils\build_ext.py", line 135, in run
_ build_ext.build_ext.run(self)
File "C:\Python27\lib\distutils\command\build_ext.py", line 340, in run
self.build_extensions()
File "C:\Users\Scott\AppData\Roaming\Python\Python27\site-packages\Cython\Distutils\build_ext.py", line 143, in build_extensions
self.build_extension(ext)
File "C:\Python27\lib\distutils\command\build_ext.py", line 499, in build_extension
depends=ext.depends)
File "C:\Python27\lib\distutils\ccompiler.py", line 624, in compile
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "C:\Python27\lib\distutils\cygwinccompiler.py", line 166, in _compile
raise CompileError, msg
ImportError: Building module failed: ["CompileError: command 'gcc' failed with exit status 1\n"]
I don't understand why it won't work, since it compiles .pyx
files fine as long as cimport
isn't in them.
If anyone could shed some light on this it would be great!
Upvotes: 4
Views: 3151
Reputation: 929
Well the function your looking for is available in the python package. (I find no reference to linspace in numpy.pxd)
I usually do something along these lines:
import numpy as np
cimport numpy as cnp
def foo(double x):
cdef cnp.ndarray[cnp.float64_t, ndim=1] y = np.linspace(0, 10, 11)
# do whatever
return y
Upvotes: 0