我跟着 http://docs.cython.org/src/tutorial/numpy.html和 http://www.scipy-lectures.org/advanced/interfacing_with_c/interfacing_with_c.html#id12使用静态类型和cython加速一些慢速代码,减少约200倍的时间,非常高兴。如果我使用Python 2.7,那就很棒了。
但是我真的想用3.4。当我使用Python 3.4运行setup.py时,似乎编译好了,但是我在0xC0000005退出代码时遇到了崩溃,只是试图在Python 3.4中导入该函数。
以下是一个具有相同问题的超级简单示例。
我的setup.py:
from distutils.core import setup, Extension
import numpy
from Cython.Distutils import build_ext
ext = Extension('hello_world', ['hello_world.pyx'], include_dirs=[numpy.get_include()])
setup(
cmdclass={'build_ext': build_ext},
ext_modules=[ext]
)
以及cythonize的代码:
import numpy as np
cimport numpy as np
def hello_world():
print('Hello world')
我正在使用命令进行编译:
python setup.py build_ext --inplace
Python仅崩溃:
import hello_world
我在Windows 7上使用cython 0.22和numpy 1.9.2。从hello_world中删除numpy import和cimport“修复”了这个问题。关于如何让它与numpy一起工作的任何想法,因为真正的代码依赖于它?谢谢。