Numpy: Numpy 1.10.2 + MKL = сбой (Windows)

Созданный на 2 янв. 2016  ·  30Комментарии  ·  Источник: numpy/numpy

Независимо от того, используете ли вы Anacondas Numpy или упакованный здесь, Numpy вылетает из-за некоторых функций. Сообщения об ошибках
Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll.

и

The procedure entry point mkl_aa_fw_get_max_memory could not be located in the dynamic link library C:\Program Files\Python 3.5\lib\site-packages\numpy\core\mkl_intel_thread.dll. .

Numpy 1.9.2 (протестирован на Python 3.3.5) работает нормально (но в его каталоге также нет выше .dll).

На данный момент я перешел на Numpy 1.9. Я знаю, что вы не тестируете MKL, но, может быть, у вас есть подсказки?

Системная информация

>>> platform.platform()
'Windows-10.0.10586'

>>> sys.version
'3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)]'

>>> np.__version__
'1.10.2'

>>> np.show_config()
blas_opt_info:
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
lapack_mkl_info:
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt', 'mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
lapack_opt_info:
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt', 'mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
blas_mkl_info:
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
mkl_info:
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
openblas_lapack_info:
  NOT AVAILABLE
00 - Bug build

Самый полезный комментарий

@cgohlke Это библиотеки DLL, которые находятся в моем каталоге Windows:

['System32\\libiomp5md.dll',
 'System32\\mkl_core.dll',
 'System32\\mkl_def.dll',
 'System32\\mkl_intel_thread.dll',
 'SysWOW64\\libiomp5md.dll',
 'SysWOW64\\mkl_core.dll',
 'SysWOW64\\mkl_intel_thread.dll',
 'SysWOW64\\mkl_p4.dll',
 'SysWOW64\\mkl_p4m.dll',
 'SysWOW64\\mkl_p4m3.dll',
 'SysWOW64\\mkl_p4p.dll']

Попытка сбросить мой PATH с помощью SET PATH=; перед вызовом python по-прежнему дает сбой, но полное удаление вышеуказанных DLL из каталога Windows останавливает сбой. Похоже на проблему приоритета пути @carlkl.

Все 30 Комментарий

Хм, не знаю, что здесь происходит. Intel внесла некоторые изменения в сборку, но я не думаю, что это замешано. Python 3.5 является возможным виновником, поскольку он скомпилирован с более новой VS для Windows. @cgohlke мысли?

Я думаю, что лучше всего предоставить репродуктор (какие «некоторые функции» производят это?) И либо надеяться, что с ответом появится сообщить об ошибке в Anaconda (поскольку у них есть ресурсы для поддержки их MKL строит, а мы нет).

Извините за "некоторые функции" :) - вылетело косвенно через matplotlib.

Это вылетает точно так же:

A = np.arange(2*3).reshape(2,3).astype(np.float32)
B = np.arange(2*3*2731).reshape(2,3,2731).astype(np.int16)

np.dot(A, B)

Я быстро проверил последнюю версию @cgohlke numpy (1.10.2) python-3.4 (64bit), а также python-3.5 (64bit) на моем ноутбуке:

>>> np.show_config()
openblas_lapack_info:
  NOT AVAILABLE
lapack_mkl_info:
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt', 'mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
lapack_opt_info:
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt', 'mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
mkl_info:
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
blas_mkl_info:
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
blas_opt_info:
    include_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/include']
    libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_rt']
    library_dirs = ['C:/Program Files (x86)/IntelSWTools/compilers_and_libraries/windows/mkl/lib/intel64_win']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
>>> import numpy as np
>>> A = np.arange(2*3).reshape(2,3).astype(np.float32)
>>> B = np.arange(2*3*2731).reshape(2,3,2731).astype(np.int16)
>>> np.dot(A, B)
array([[[  13655.,   13658.,   13661., ...,   21839.,   21842.,   21845.],
        [  38234.,   38237.,   38240., ...,   46418.,   46421.,   46424.]],

       [[  38234.,   38246.,   38258., ...,   70970.,   70982.,   70994.],
        [ 136550.,  136562.,  136574., ...,  169286.,  169298.,  169310.]]], dtype=float32)

Оба работают, как и ожидалось для меня.

Я предполагаю, что ошибка Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll может быть объяснена тем, что где-то на mkl_intel_thread.dll найдена неверная версия PATH . Обнаружение библиотек DLL MKL путем расширения PATH как это сделано в numpy + MKL, является уязвимым, если в системе установлена ​​другая среда выполнения MKL.

Есть ли в каталогах C: \ Windows * файлы libiomp5md.dll или mkl_*.dll ?

@cgohlke , в numpy + MKL вы ввели _init_numpy_mkl() чтобы добавить numpy.core к PATH .

Рассматривали ли вы следующий подход из https://gist.github.com/matham/f6a07f8fb5e403feb440 для изменения порядка поиска DLL?

Смотрите также:
https://pytools.codeplex.com/workitem/1627 (откуда он)
https://github.com/numpy/numpy/wiki/windows-dll-notes#python -dlls
http://stackoverflow.com/questions/23804438/find-library-in-ctypes

@cgohlke Это библиотеки DLL, которые находятся в моем каталоге Windows:

['System32\\libiomp5md.dll',
 'System32\\mkl_core.dll',
 'System32\\mkl_def.dll',
 'System32\\mkl_intel_thread.dll',
 'SysWOW64\\libiomp5md.dll',
 'SysWOW64\\mkl_core.dll',
 'SysWOW64\\mkl_intel_thread.dll',
 'SysWOW64\\mkl_p4.dll',
 'SysWOW64\\mkl_p4m.dll',
 'SysWOW64\\mkl_p4m3.dll',
 'SysWOW64\\mkl_p4p.dll']

Попытка сбросить мой PATH с помощью SET PATH=; перед вызовом python по-прежнему дает сбой, но полное удаление вышеуказанных DLL из каталога Windows останавливает сбой. Похоже на проблему приоритета пути @carlkl.

@cgohlke , я предлагаю следующее изменение для тестирования с помощью numpy + MKL __init__.py

def _init_numpy_mkl():
    # Numpy+MKL on Windows only
    import os
    import ctypes
    if os.name != 'nt':
        return
    # disable Intel Fortran default console event handler
    env = 'FOR_DISABLE_CONSOLE_CTRL_HANDLER'
    if env not in os.environ:
        os.environ[env] = '1'
    # extend DLL search order with numpy.core
    # See https://github.com/numpy/numpy/wiki/windows-dll-notes#python-dlls
    # and https://pytools.codeplex.com/workitem/1627
    try:
        _AddDllDirectory = ctypes.windll.kernel32.AddDllDirectory
        _AddDllDirectory.argtypes = [ctypes.c_wchar_p]
        # Needed to initialize AddDllDirectory modifications
        ctypes.windll.kernel32.SetDefaultDllDirectories(0x1000)
    except AttributeError:
        _AddDllDirectory = ctypes.windll.kernel32.SetDllDirectoryW
        _AddDllDirectory.argtypes = [ctypes.c_wchar_p]
    try:
        _core = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'core')
        _AddDllDirectory(_core)
    except Exception:
        pass

_init_numpy_mkl()
del _init_numpy_mkl

полное удаление вышеуказанных DLL из каталога Windows останавливает сбой.

Скатертью дорога.

Я предлагаю следующее изменение для тестирования с помощью numpy + MKL __init__.py

Это не будет работать на старых системах и, что более важно, сломает пакеты, которые зависят от системного порядка поиска DLL . Это может быть приемлемо для таких дистрибутивов, как Anaconda или WinPython.

Мне показалось забавным, что я изначально нашел метод AddDllDirectory в numpy wiki, который частично был зачислен на @carlkl , но затем я предложил его использовать здесь в качестве примера @carlkl , и я оказался здесь, потому что проблемы с этим примером кода при поиске numpy для AddDllDirectory . Круг замкнулся ...

В любом случае, я хотел бы отметить для других, которые рассматривают возможность использования этого, что строка ctypes.windll.kernel32.SetDefaultDllDirectories(0x1000) (и любые другие ненулевые флаги) вызывают исключения ImportError: DLL load failed: The parameter is incorrect при загрузке некоторых dll. Для меня это произошло только со встроенным расширением mingw-w64 (mingwpy), которое связано с dll ffmpeg, которые были кросс-скомпилированы на debian с mingw-w64. Но я не знаю, виноват ли это.

Однако, поскольку python вызывает LoadLibraryEx только с LOAD_WITH_ALTERED_SEARCH_PATH а не с LOAD_LIBRARY_SEARCH_USER_DIRS , если SetDefaultDllDirectories также не вызывается с LOAD_LIBRARY_SEARCH_USER_DIRS , LoadLibraryEx не будет искать каталоги, добавленные с помощью AddDllDirectory . Мне это кажется немного хрупким в использовании, поэтому я думаю, что я вернусь к добавлению каталога dll в путь с помощью os.environ . Интересно, стоит ли мне обновлять вики этой информацией?

В любом случае, надеюсь, это было не слишком далеко от темы.

@matham , этот фрагмент кода должен быть зачислен на _zooba_ - см. https://pytools.codeplex.com/workitem/1627. Строка ctypes.windll.kernel32.SetDefaultDllDirectories(0x1000) не меняет поведения LoadLibraryEx с LOAD_WITH_ALTERED_SEARCH_PATH . Это _надежно__ изменяет поведение LoadLibraryA (_without_ LOAD_WITH_ALTERED_SEARCH_PATH ), которое он использовал для загрузки MKL_INTEL_THREAD.DLL сразу после загрузки random \ mtrand.pyd и MKL_RT.DLL затем вызывает MKL_INTEL_THREAD.DLL :

журнал из обходчика зависимостей во время python -c "import numpy"

...
LoadLibraryExW("d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\random\mtrand.cp35-win_amd64.pyd", 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) called from "d:\devel\py\python-3.5.0.amd64\PYTHON35.DLL" at address 0x00000000587E7747.
Loaded "d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\random\MTRAND.CP35-WIN_AMD64.PYD" at address 0x000007FEF3310000.  Successfully hooked module.
DllMain(0x000007FEF3310000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\random\MTRAND.CP35-WIN_AMD64.PYD" called.
DllMain(0x000007FEF3310000, DLL_PROCESS_ATTACH, 0x0000000000000000) in "d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\random\MTRAND.CP35-WIN_AMD64.PYD" returned 1 (0x1).
LoadLibraryExW("d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\random\mtrand.cp35-win_amd64.pyd", 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned 0x000007FEF3310000.
LoadLibraryA("d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\core\mkl_intel_thread.dll") called from "d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\core\MKL_RT.DLL" at address 0x000007FEE17C4772.
Loaded "d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\core\MKL_INTEL_THREAD.DLL" at address 0x000007FEE0520000.  Successfully hooked module.
Loaded "d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\core\MKL_CORE.DLL" at address 0x000007FEDEEC0000.  Successfully hooked module.
Loaded "d:\devel\py\python-3.5.0.amd64\lib\site-packages\numpy\core\LIBIOMP5MD.DLL" at address 0x000007FEE43E0000.  Successfully hooked module.
...

@carlkl правда, но я имел в виду вики: (thanks to Steve Dower for the fragment, Carl Kleffner for finding it) , я предположил, что это вы :)

Хрупкость, о которой я говорил, заключается в том, что, как правило, может выполняться какой-то другой код между вызовом SetDefaultDllDirectories который устанавливает этот флаг, и фактической загрузкой библиотеки. Например, если вы импортируете что-то, что само вызывает SetDefaultDllDirectories возможно, со значением (например, 0), что может привести к тому, что dll не будет найдена позже при импорте. Хотя, думаю, здесь это может не быть проблемой, если он сразу импортирован.

@cgohlke , что-то не так с предварительной MKL_RT.DLL , MKL_INTEL_THREAD.DLL и MKL_CORE.DLL с явным путем в numpy.core в _init_numpy_mkl() ? Я не уверен, что тогда будет работать постепенная загрузка других необходимых MKL DLL.

@cgohlke ,

следующий фрагмент гарантирует (?), что библиотеки DLL MKL загружаются из numpy.core, а не из какой-либо системы Windows или папки Redist Intel. Порядок загрузки DLL имеет значение. По крайней мере, это работает для Windows 7 python-3.4 bit.

def _init_numpy_mkl():
    # Numpy+MKL on Windows only
    import os
    import ctypes
    if os.name != 'nt':
        return
    # disable Intel Fortran default console event handler
    env = 'FOR_DISABLE_CONSOLE_CTRL_HANDLER'
    if env not in os.environ:
        os.environ[env] = '1'
    # preload MKL DLLs from numpy.core
    try:
        _core = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'core')
        for _dll in ('mkl_rt', 'libiomp5md', 'mkl_core', 'mkl_intel_thread', 
                     'libmmd', 'libifcoremd', 'libimalloc'):
            ctypes.cdll.LoadLibrary(os.path.join(_core,_dll))
    except Exception:
        pass

_init_numpy_mkl()
del _init_numpy_mkl

У меня была та же проблема, и я проследил ее до установленного mkl_intel_thread.dll в C:\Windows\System32 как указано danielgeier.
В старой версии, помимо прочего, не было mkl_aa_fw_get_max_memory .
Время создания совпало с установкой аудиодрайверов Asio4all. После того, как я удалил те, которые удалили несколько dll, он снова заработал (лучше, чем просто удаление dll в system32 самостоятельно).
Я поигрался с откатом и обновлением дистрибутива anaconda, но это не сработало. Я также не мог отключить mkl с помощью anaconda в Windows.

@ sebastian-schmidt, можете ли вы попробовать, если явная загрузка DLL MKL из папки numpy / core работает для вас, даже с установленными устаревшими DLL MKL в системной папке Windows. См. Выше: https://github.com/numpy/numpy/issues/6923#issuecomment -169073613

@carlkl , где мне добавить фрагмент?
Я попытался добавить его в файл, который использовал в качестве теста: https://gist.github.com/sebastian-schmidt/9bb97354b481750209fd3dac1e748d31, и это не сработало.
Присоединенный путь - это просто подкаталог, из которого я вызываю файл.
Нужно ли мне добавлять его в инициализацию модуля Numpy?

Функция _init_numpy_mkl() является частью @cgohlke numpy + mkl wheels. Вы можете найти его в файле __init__.py . Это не часть официальных источников numpy.

Вот версия, найденная в numpy-1.10.4+mkl-cp34-none-win32.whl

def _init_numpy_mkl():
    # Numpy+MKL on Windows only
    import os
    if os.name != 'nt':
        return
    # disable Intel Fortran default console event handler
    env = 'FOR_DISABLE_CONSOLE_CTRL_HANDLER'
    if env not in os.environ:
        os.environ[env] = '1'
    # prepend the path of the Intel runtime DLLs to os.environ['PATH']
    try:
        path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'core')
        if path not in os.environ.get('PATH', ''):
            os.environ['PATH'] = os.pathsep.join((path, os.environ.get('PATH', '')))
    except Exception:
        pass

_init_numpy_mkl()
del _init_numpy_mkl

Эта функция добавляет numpy/core папки в PATH среды. Однако библиотеки DLL, найденные в системной папке Windows, предпочтительнее библиотек DLL, найденных в PATH. Добро пожаловать в ад DLL.

Альтернативная версия этой функции https://github.com/numpy/numpy/issues/6923#issuecomment -169073613 загружает библиотеки DLL MKL из numpy/core в правильном порядке _без изменения среды PATH . Все имена DLL даны как явные имена файлов с полным путем, поэтому я не ожидаю проблем с затенением DLL в системной папке Windows, но я не тестировал это.

Однако меня не волновал замороженный numpy в этом фрагменте кода.

Я изменил _init_numpy_mkl() в дистрибутиве Anaconda на вашу версию, и тогда он windows/system32 (с несовместимыми dll в

Рад слышать!

Код в _init_numpy_mkl () является частью Numpy распределения @cgohlke «s и под его responibility.
@cgohlke : какие-либо комментарии к https://github.com/numpy/numpy/issues/6923#issuecomment -169073613?

@ sebastian-schmidt, можете ли вы протестировать версию с помощью AddDllDirectory (или SetDllDirectoryW в качестве запасного варианта): см. выше: https://github.com/numpy/numpy/issues/6923#issuecomment -168490201

@carlkl , версия AddDllDirectory / SetDllDirectoryW тоже работает.
Тестом всегда был только пример np.dot() Дэниелгейера.
Кстати, программное обеспечение, устанавливающее библиотеки mkl, было Amplitube, а не драйверами Asio4all.

Я тоже обратил внимание на Amplitube.

когда я попробовал: import matplotlib.pyplot as plt с обеими версиями инициализации, я получил ошибку:

---> 60 import matplotlib._png as _png
     61 ####################
     62 

ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.

Поэтому я вернулся к исходной версии Anaconda и оставил Amplitube деинсталлированным.

@ sebastian-schmidt, по крайней мере, у меня это работает. Импорт numpy, scipy, matplotlib._png работает без проблем на моем ящике.

Тем не менее, удаление библиотек DLL MKL из системных папок Windows кажется лучшим решением для такого рода проблем.

Пора закрыть этот вопрос?

Привет, ребята. На всякий случай у кого-то еще есть эта проблема. У меня numpy 1.12 + mkl и была такая же проблема. Я удалил Amplitube 3, и теперь все работает!

Привет, ребята,

Я только что установил последний пакет numpy + mkl 1.13 отсюда @cgohlke .

Я использую 64-разрядную версию Anaconda с Python 3.6.1 в Windows 7.

После этого у меня тоже возникает эта проблема с DLL, раньше она отлично работала для v1.12 с того же сайта.

Чтобы добавить, на самом деле весь код работает в записной книжке Jupyter ... Это происходит только в консоли.

@carlkl Я искал в своей папке Anaconda _init_numpy_mkl но не смог найти файл, содержащий эту строку. Добавление numpy/core к моей переменной PATH env вручную тоже не помогло.

Есть другие предложения?

Благодарю.

когда я импортировал изображение, я столкнулся с проблемой «не могу загрузить mkl_intel_thread.dll».
Я не могу найти mkl_intel_thread.dll в windows / system32, поэтому я удалил libiomp5md.dll в этой папке, как упоминал @cgohlke , это работает! большое спасибо! эта проблема беспокоила меня несколько недель. В любом случае, я надеюсь, что другие, столкнувшиеся с этой проблемой, могут получить от этого помощь. Попробуйте найти libiomp5md.dll, может поможет.

Интересно, работает ли https://github.com/numpy/numpy/issues/6923#issuecomment -169073613 в этом случае без необходимости удалять библиотеки DLL MKL из windows / system32. Этот фрагмент показывает, что можно загрузить семь (но не все) библиотеки DLL MKL в папку numpy / core без необходимости передавать дополнительные библиотеки в переменную среды PATH или использовать другие уловки. Важно загружать эти 7 DLL в правильной последовательности. Все остальные необходимые библиотеки DLL MKL затем автоматически загружаются из папки numpy / core вместо папки windows / system32.

Пока неясно, работает ли это во всех мыслимых сценариях. Например, замороженные приложения на Python. Также версии ОС Windows могут отличаться по способу загрузки библиотеки DLL.

Мне кажется полезным продолжить исследование этого варианта.

Мы ходили туда-сюда с SetDefaultDllDirectories , # 10229 добавили его, а затем # 11493 удалили. Я думаю, что мы зашли настолько далеко, насколько смогли. Кажется, лучший вариант - удалить другие копии mkl из PATH.

Пожалуйста, откройте снова, если вы не согласны.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги