我正在尝试访问 Cython 0.15 的新并行功能(使用赛通 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
。但我认为它应该包含在发布?有人可以为困惑的用户澄清一下吗?
我正在使用 Cython 0.15+
Shadow.py 中存在 cython.parallel:
import sys
sys.modules['cython.parallel'] = CythonDotParallel()
Shadow.py 可以位于 Python 的 dist-packages 目录中,例如 Linux 中的 /usr/local/lib/python2.6/dist-packages/
我是一名优秀的程序员,十分优秀!