У меня есть очень простой код cython, который использует prange
, который отлично работает в Linux. Однако, когда я пытаюсь сделать это в Windows. Я столкнулся с проблемой, что его можно скомпилировать, но нельзя импортировать:
ImportError: DLL load failed: This application has failed to start because the a
pplication configuration is incorrect. Reinstalling the application may fix this
problem.
Более того, в windows я не могу from cython.parallel import threadlocal
?! странный...
Кто-нибудь может указать направление?
Система работает нормально: linux64, компилятор gcc, пакеты: Python 2.7, cython 0.16
проблема в системе: Win64, компилятор: MSVC VS2008, пакеты: Python 2.7, cython 0.16
Вот мой простой cython pyx:
cimport cython
from cython.parallel import prange
def f(int n):
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 as np
setup(
cmdclass = {'build_ext': build_ext},
include_dirs = [np.get_include()],
ext_modules = [Extension("pcython1", ["pcython1.pyx"],extra_compile_args=['/openmp',],),]
)
/openmp
работают иrange
, иprange
. С ним ни один из них не работает. - person Wang   schedule 04.08.2012MS visual studio
, а толькоVC++ redustributable
, то работает нормально... Запутался... И загрузки процессора совершенно разные междуrange
иprange
версией. Итак, openMP работает, просто он не может работать в системе с установленными отладочными dll, я думаю. - person Wang   schedule 04.08.2012