4

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!

0 _
  • 10,524
  • 11
  • 77
  • 109
user991926
  • 101
  • 1
  • 6
  • Are the NumPy headers properly installed? Did you call the source file `numpyx` or `numpyx.pyx`? – Fred Foo Nov 03 '11 at 14:50
  • the file is called numpyx.pyx, i just called it that so it wouldnt just import numpy. im not supper good at this so i dont really what you mean by headers installed properly, i used PyPm to install numpy(it installs the modules for me). – user991926 Nov 03 '11 at 14:55

1 Answers1

0

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
Bjoern Dahlgren
  • 931
  • 8
  • 18