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。実際、site-packagesでCythonパッケージを参照すると、と呼ばれるファイルまたはディレクトリが見つかりません parallel。しかし、私はそれがリリースのどこかに含まれるべきだと思いましたか?誰かが混乱しているユーザーのために明確にしてくれませんか?

4

2 に答える 2

1

Cython0.15+を使用しています

cython.parallelはShadow.pyに存在します:

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

また、Linuxの場合とShadow.py同様に、Pythonのdist-packagesディレクトリに配置できます。/usr/local/lib/python2.6/dist-packages/

于 2011-12-06T07:30:25.307 に答える
0

以下を使用して、PythonコマンドラインですべてのPythonモジュールを確認できます。

>>> help('modules')

次に、easy_installまたはpipを使用してcythonをインストール/再インストールしてみてください。

于 2011-12-05T19:47:18.340 に答える