Cython ImportError:没有名为parallel的模块

时间:2011-12-05 15:17:33

标签: python parallel-processing cython enthought

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

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包中 site-packages,我找不到任何被调用的文件或目录 parallel。但我认为它应该包含在某个地方 发布?有人可以澄清一个困惑的用户吗?

2 个答案:

答案 0 :(得分:1)

我正在使用Cython 0.15 +

cython.parallel存在于Shadow.py中:

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

Shadow.py可以位于Python的dist-packages目录中,如Linux中的/usr/local/lib/python2.6/dist-packages/

答案 1 :(得分:0)

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

>>> help('modules')

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