1

我正在尝试访问 Cython 0.15 的新并行功能(使用 Cython 0.15.1)。但是,如果我尝试取自http://docs.cython.org/src/userguide/parallelism.html的这个最小示例(testp.py) :

from cython.parallel import prange, parallel, threadid
cdef int i
cdef int sum = 0

for i in prange(n, nogil=True):
    sum += i
print sum

使用此 setup.py:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy

ext = Extension("testp", ["testp.pyx"], include_dirs=[numpy.get_include()],
                extra_compile_args=['-fopenmp'], extra_link_args ['-fopenmp'])
setup(ext_modules=[ext], cmdclass={'build_ext': build_ext})

当我import testp,Python 告诉我:ImportError: No module named parallel. 事实上,如果我浏览站点包中的 Cython 包,我找不到任何名为 parallel. 但我认为它应该包含在版本中的某个地方?有人可以为困惑的用户澄清一下吗?

4

2 回答 2

1

我正在使用 Cython 0.15+

cython.parallel 存在于 Shadow.py 中:

import sys
sys.modules['cython.parallel'] = CythonDotParallel()

并且Shadow.py可以像/usr/local/lib/python2.6/dist-packages/在 Linux 中一样位于 Python 的 dist-packages 目录中

于 2011-12-06T07:30:25.307 回答
0

您可以使用以下命令在 python 命令行中检查所有 python 模块:

>>> help('modules')

然后尝试使用 easy_install 或 pip 安装/重新安装 cython。

于 2011-12-05T19:47:18.340 回答