【问题标题】:`cimport numpy` raises error using Cython`cimport numpy` 使用 Cython 引发错误
【发布时间】:2011-11-03 14:45:32
【问题描述】:

我正在尝试从.pyx 文件将cimport NumPy 转换为 Python 2.7 shell,但它一直给我同样的错误:

我创建了一个名为 numpyx 的 .pyx 文件,只是为了查看它是否是我正在运行的更大代码的一部分,该文件包含:

cimport numpy as np
a = np.arange(0,10)
print 'a= ',a

我每次都收到以下错误:

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"]

我不明白为什么它不起作用,因为只要cimport 不在其中,它就可以很好地编译.pyx 文件。

如果有人能对此有所了解,那就太好了!

【问题讨论】:

  • 是否正确安装了 NumPy 标头?你是调用源文件numpyx还是numpyx.pyx?
  • 该文件名为 numpyx.pyx,我只是这样称呼它,所以它不会只导入 numpy。我不擅长这个,所以我真的不知道正确安装标题的意思,我使用 PyPm 安装 numpy(它为我安装模块)。

标签: python numpy cython cimport


【解决方案1】:

您正在寻找的功能在 python 包中可用。 (我在 numpy.pxd 中没有找到对 linspace 的引用)

我通常会这样做:

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

【讨论】:

    猜你喜欢
    • 2014-11-02
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多