Cython ImportError: модуль с параллельным именем отсутствует - PullRequest
1 голос
/ 05 декабря 2011

Я пытаюсь получить доступ к новым параллельным функциям 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})

при I import testp, Pythonговорит мне: ImportError: No module named parallel.И на самом деле, если я просматриваю пакет Cython в пакетах сайта, я не могу найти файл или каталог, который называется parallel.Но я думал, что это должно быть включено где-то в выпуске?Может ли кто-нибудь уточнить для запутанного пользователя?

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

Я использую Cython 0.15 +

cython.parallel существует в Shadow.py:

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

И Shadow.py может быть расположен в каталоге dist-пакетов вашего Python, как /usr/local/lib/python2.6/dist-packages/ в Linux

0 голосов
/ 05 декабря 2011

Вы можете проверить все свои модули python в командной строке python, используя:

>>> help('modules')

, а затем попробуйте установить / переустановить cython, используя easy_install или pip.

...