2011-12-05 22 views
0

Cython 0.15の新しい並列機能( Cython 0.15.1を使用)にアクセスしようとしています。私はこの最小限の例(testp.py)を試す場合は、http://docs.cython.org/src/userguide/parallelism.htmlから取ら:このsetup.pyとCython ImportError:名前のないモジュール

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 

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}) 

I import testpは、Pythonが私に語った:ImportError: No module named parallelが。実際、 サイトパッケージのCythonパッケージを参照すると、 parallelと呼ばれるファイルやディレクトリが見つかりません。しかし、私はそれが リリースのどこかに含まれるべきだと思いましたか?誰かが混乱したユーザーのために明確にしてもらえますか?

+0

OKだから、私はまだ間違ったバージョンがインストールされていたという解決策でした。 "python setup.py install"は私のCythonバージョンをアップグレードしませんでした。しかし、 "easy_install --upgrade Cython"の助けを借りて、すべてうまくいった!ありがとう、問題解決。 –

答えて

0

あなたは使用してPythonのコマンドラインであなたのpythonモジュールの全てを確認することができます。

>>> help('modules') 

そしてeasy_installをやピップを使用してcython再インストール/インストールしてみてください。

+0

ああ、私はeasy_installを知らなかった!それで、0.15.1へのアップグレードはとても簡単でした!お薦めいただきありがとうございます。 –

0

私はCython 0.15+

cython.parallelを使用していますがShadow.pyに存在する:

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

そしてShadow.pyは、Linux

/usr/local/lib/python2.6/dist-packages/のようなあなたのPythonののdist-packagesディレクトリに配置することができます
+0

私が見つけた唯一のShadow.pyはsite-packages/Cythonにあり、 "parallel"を含んでいないので、間違ったディレクトリに本当にインストールされているかもしれません。奇妙なことに、私は通常の "python setup.py install"メソッドを使用しました。 –

関連する問題