Anacondas 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ã¯ãããŸããïŒã
ãšãããããNumpy1.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
ããŒããããã§äœãèµ·ãã£ãŠããã®ãããããªãã Intelã¯ãã«ãã«ããã€ãã®å€æŽãå ããŸãããããããã¯é¢ä¿ããŠããªããšæããŸãã Python 3.5ã¯ãWindowsäžã®æ°ããVSã§ã³ã³ãã€ã«ãããŠãããããåå ã®å¯èœæ§ããããŸãã @cgohlkeã®èãïŒ
ç§ã¯ããªãã®æåã®çã¯åçåšãæäŸããããšã ãšæããŸãïŒãããçæãããããã€ãã®é¢æ°ãã¯äœã§ããïŒïŒãããŠ@cgohlkeãçãããããã¢ããããããAnacondaã«ãã°ã
ãããã€ãã®é¢æ°ãã«ã€ããŠã¯ç³ãèš³ãããŸããïŒïŒ-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)
ã©ãããããã§ææ°ã®@cgohlkenumpy ïŒ1.10.2ïŒpython-3.4ïŒ64ãããïŒãšpython-3.5ïŒ64ãããïŒã䜿çšããŠç°¡åãªãã§ãã¯ãè¡ããŸããã
>>> 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)
ã©ã¡ããç§ã«ãšã£ãŠã¯æåŸ ã©ããã«æ©èœããŸãã
PATH
ã©ããã«ééã£ãããŒãžã§ã³ã®mkl_intel_thread.dll
èŠã€ãã£ãããããšã©ãŒIntel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll
ã説æããããšæããŸãã numpy + MKLã§è¡ãããããã«PATH
ãæ¡åŒµããŠMKL DLLãèŠã€ããããšã¯ãå¥ã®MKLã©ã³ã¿ã€ã ãã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããŠããå Žåã¯è匱ã§ãã
CïŒ\ Windows *ãã£ã¬ã¯ããªã«libiomp5md.dll
ãŸãã¯mkl_*.dll
ãã¡ã€ã«ã¯ãããŸããïŒ
@cgohlkeãnumpyã®+ MKLã§ããªãã¯ãå°å
¥ããã_init_numpy_mkl()
è¿œå ããããã«numpy.core
ã«PATH
ã
DLLã®æ€çŽ¢é åºãå€æŽããããã«ã httpsïŒ//gist.github.com/matham/f6a07f8fb5e403feb440ãã次ã®ã¢ãããŒããæ€èšããŸãããïŒ
åç
§ïŒ
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ãããã¯ç§ã®Windowsãã£ã¬ã¯ããªã«ããDLLã§ãïŒ
['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']
PythonãåŒã³åºãåã«SET PATH=;
PATHããªã»ããããããšãããšã¯ã©ãã·ã¥ããŸãããäžèšã®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ã®ãããªãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯åãå ¥ãããããããããŸããã
@carlklã«éšåçã«ã¯ã¬ãžãããããŠããAddDllDirectory
ã¡ãœãããèŠã€ããã®ã¯é¢çœããšæããŸããããã®åŸãäŸãšããŠ@carlklã«ãã£ãŠããã§ã®äœ¿çšæ³ãææ¡ãããè¡ãçããŸããã numpyã§AddDllDirectory
æ€çŽ¢ãããšãã®ãµã³ãã«ã³ãŒãã®åé¡ã®äŸã ããã¯å®å
šãªåã§ã...
ãšã«ãããããã䜿çšããããšãæ€èšããŠããä»ã®äººã®ããã«ãè¡ctypes.windll.kernel32.SetDefaultDllDirectories(0x1000)
ïŒããã³ãã®ä»ã®ãŒã以å€ã®ãã©ã°ïŒã¯ãããã€ãã®dllãããŒããããšãã«ImportError: DLL load failed: The parameter is incorrect
äŸå€ãåŒãèµ·ããããšã«æ³šæããããšæããŸããã ç§ã«ãšã£ãŠã¯ãmingw-w64ïŒmingwpyïŒã§ãã«ããããæ¡åŒµæ©èœã§ã®ã¿çºçããŸããããã®æ¡åŒµæ©èœã¯ãmingw-w64ã䜿çšããŠDebianã§ã¯ãã¹ã³ã³ãã€ã«ãããffmpegdllã«ãªã³ã¯ãããŠããŸããã ãããããããåå ãã©ããã¯ããããŸããã
ãã ããPythonã¯LoadLibraryEx
ãLOAD_WITH_ALTERED_SEARCH_PATH
LoadLibraryEx
ã®ã¿åŒã³åºãã LOAD_LIBRARY_SEARCH_USER_DIRS
ã§ã¯åŒã³åºããªãããã SetDefaultDllDirectories
ãLOAD_LIBRARY_SEARCH_USER_DIRS
ã§åŒã³åºãããªãéãã LoadLibraryEx
ã¯ã AddDllDirectory
è¿œå ããããã£ã¬ã¯ããªãæ€çŽ¢ããŸããã ç§ã«ã¯ããã䜿çšããã®ã¯å°ãå£ããããããã«æãããã®ã§ã os.environ
ã䜿çšããŠãã¹ã«dllãã£ã¬ã¯ããªãè¿œå ããããšã«æ»ããšæããŸãã ãããããã®æ
å ±ã§wikiãæŽæ°ããå¿
èŠããããã©ããçåã«æããŸããïŒ
ãšã«ãããããŸãããã°ãããã¯ããã»ã©é ããªããããã¯ã§ã¯ãããŸããã§ããã
@matham ããã®ã³ãŒãã¹ããããã¯_zooba_ã«ã¯ã¬ãžãããããŠããå¿
èŠããããŸã-https ïŒ //pytools.codeplex.com/workitem/1627ãåç
§ããŠctypes.windll.kernel32.SetDefaultDllDirectories(0x1000)
ã¯ã LOAD_WITH_ALTERED_SEARCH_PATH
ã§LoadLibraryEx
ã®åäœãå€æŽããŸããã random \ mtrand.pydãããŒããããçŽåŸã«MKL_INTEL_THREAD.DLL
ãããŒãããããã«äœ¿çšããLoadLibraryA
ïŒ_ without_ LOAD_WITH_ALTERED_SEARCH_PATH
ïŒã®åäœã_ããŸãããã°_å€æŽãã 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 trueã§ãããç§ã¯wikiãåç
§ããŠããŸããïŒ (thanks to Steve Dower for the fragment, Carl Kleffner for finding it)
ãããã¯ããªãã ãšæããŸãã:)
ç§ãèšåããŠããè匱æ§ã¯ãäžè¬ã«ããã®ãã©ã°ãèšå®ããSetDefaultDllDirectories
åŒã³åºããšãã©ã€ãã©ãªãå®éã«ããŒãããããšãã«å®è¡ãããä»ã®ã³ãŒããååšããå¯èœæ§ãããããšã§ãã ããšãã°ãããèªäœãSetDefaultDllDirectories
åŒã³åºããã®ããããããå€ïŒ0ãªã©ïŒã§ã€ã³ããŒããããšãåŸã§ã€ã³ããŒããããšãã«dllãèŠã€ãããªããªãå¯èœæ§ããããŸãã ããã«ã€ã³ããŒãããã°ãããã§ã¯åé¡ã«ãªããªããããããŸãããã
@cgohlke ã numpy.core
å
ã®_init_numpy_mkl()
numpy.core
ãžã®æ瀺çãªãã¹åã§MKL_RT.DLL
ã MKL_INTEL_THREAD.DLL
ã MKL_CORE.DLL
ãããªããŒãããããšã«äœãåé¡ããããŸããïŒ ä»ã®å¿
èŠãªMKLDLLã®æ®µéçãªããŒããæ©èœãããã©ããã¯ããããŸãããã
@cgohlke ã
次ã®ã¹ããããã¯ãMKL DLLãWindowsã·ã¹ãã ãIntelredistãã©ã«ããŒããã§ã¯ãªãnumpy.coreããããŒããããããšãä¿èšŒããŸãïŒïŒïŒã DLLãããŒãããé åºãéèŠã§ãã å°ãªããšããWindows 7python-3.4ãããã§åäœããŸãã
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
ç§ã¯åãåé¡ãæ±ããŠããŠãdanielgeierã«ãã£ãŠç€ºãããŠããããã«ã C:\Windows\System32
ã«ã€ã³ã¹ããŒã«ãããmkl_intel_thread.dll
ãŸã§ããã®ãŒããŸããã
å€ãããŒãžã§ã³ã«ã¯ããšãããmkl_aa_fw_get_max_memory
ããããŸããã§ããã
äœææéã¯ãAsio4allãªãŒãã£ãªãã©ã€ããŒã®ã€ã³ã¹ããŒã«ãšäžèŽããŸããã ããã€ãã®dllãåé€ãããã®ãã¢ã³ã€ã³ã¹ããŒã«ããåŸãåã³æ©èœããŸããïŒsystem32ã®dllãèªåã§åé€ãããããåªããŠããŸãïŒã
ããŒã«ããã¯ããŠanacondaãã£ã¹ããªãã¥ãŒã·ã§ã³ãæŽæ°ããŠã¿ãŸããããããŸããããŸããã§ããã ãŸããWindowsã§anacondaã䜿çšããŠmklãç¡å¹ã«ããããšãã§ããŸããã§ããã
@ sebastian-schmidtãWindowsã·ã¹ãã ãã©ã«ããŒã«å€ãMKL DLLãã€ã³ã¹ããŒã«ãããŠããå Žåã§ããnumpy / coreãã©ã«ããŒããã®MKLDLLã®æ瀺çãªããŒããæ©èœããå Žåã¯è©ŠããŠã¿ãŠãã ããã äžèšãåç §ããŠãã ããïŒ https ïŒ
@carlkl ãã¹ãããããã©ãã«è¿œå ããå¿
èŠããããŸããïŒ
ãã¹ããšããŠäœ¿çšãããã¡ã€ã«https://gist.github.com/sebastian-schmidt/9bb97354b481750209fd3dac1e748d31ã«è¿œå ããããšããŸããããæ©èœããŸããã§ããã
çµåããããã¹ã¯ããã¡ã€ã«ãåŒã³åºãå Žæããã®åãªããµããã£ã¬ã¯ããªã§ãã
Numpyã¢ãžã¥ãŒã«ã®initã«è¿œå ããå¿
èŠããããŸããïŒ
é¢æ°_init_numpy_mkl()
ã¯ã @ cgohlke numpy + mklãã€ãŒã«ã®äžéšã§ãã __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
ç°å¢ã«è¿œå ããŸãã ãã ããWindowsã·ã¹ãã ãã©ã«ããŒã«ããDLLã¯ãPATHã«ããDLLãããåªå
ãããŸãã DLLå°çãžããããã
ãã®é¢æ°ã®ä»£æ¿ããŒãžã§ã³https://github.com/numpy/numpy/issues/6923#issuecomment-169073613ã¯ã PATH
ç°å¢ãå€æŽããã«ãMKL DLLãnumpy/core
ããæ£ããé åºã§ããŒãããŸãã ãã¹ãŠã®DLLåã¯ãå®å
šä¿®é£Ÿãã¹åãæã€æ瀺çãªãã¡ã€ã«åãšããŠæå®ãããŠãããããWindowsã·ã¹ãã ãã©ã«ããŒå
ã®DLLã®ã·ã£ããŠã€ã³ã°ã§åé¡ãçºçããããšã¯ãªããšæããŸãããããã¯ãã¹ãããŠããŸããã
ãã ãããã®ã³ãŒãã¹ããããã§ã¯ããªãŒãºããnumpyã¯æ°ã«ããŸããã§ããã
Anacondaãã£ã¹ããªãã¥ãŒã·ã§ã³ã®_init_numpy_mkl()
ãã䜿ãã®ããŒãžã§ã³ã«å€æŽãããšãããæ©èœããŸããïŒ windows/system32
äºææ§ã®ãªãdllã䜿çšïŒã
èããŠããã£ãïŒ
_init_numpy_mklã®ã³ãŒãã¯ãïŒïŒ@cgohlkeã®numpyã®ååžã®åœŒã®responibilityäžéšåã§ãã
@cgohlke ïŒ httpsïŒ //github.com/numpy/numpy/issues/6923#issuecomment -169073613ã«é¢ããã³ã¡ã³ãã¯ãã
@ sebastian-schmidtãAddDllDirectoryïŒãŸãã¯ãã©ãŒã«ããã¯ãšããŠSetDllDirectoryWïŒã䜿çšããŠããŒãžã§ã³ããã¹ãã§ããŸããïŒäžèšãåç §ããŠãã ããïŒ https ïŒ
@ carlkl ãAddDllDirectory / SetDllDirectoryWããŒãžã§ã³ãæ©èœããŸãã
ãã¹ãã¯åžžã«danielgeierã«ããnp.dot()
äŸã«ãããŸããã§ããã
ã¡ãªã¿ã«ãmklã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããœãããŠã§ã¢ã¯Amplitubeã§ãããAsio4allãã©ã€ããŒã§ã¯ãããŸããã§ããã
ç§ããã®åé¡ãAmplitubeã«ããã®ãŒããŸããã
ç§ãè©ŠãããšãïŒäž¡æ¹ã®initããŒãžã§ã³ã§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ã®ã€ã³ããŒãã¯ãç§ã®ããã¯ã¹ã§ã¯åé¡ãªãæ©èœããŸãã
ãã ããWindowsã®ã·ã¹ãã ãã©ã«ãããMKL DLLãåé€ããããšã¯ããã®çš®ã®åé¡ã«å¯Ÿããæåã®è§£æ±ºçã®ããã§ãã
ãã®åé¡ã解決ããæãæ¥ãŸãããïŒ
ããã«ã¡ã¯ãã¿ããªã 誰ãããŸã ãã®åé¡ãæ±ããŠããå Žåã«åããŠã numpy 1.12 + mklããããåãåé¡ãçºçããŸããã Amplitube 3ãã¢ã³ã€ã³ã¹ããŒã«ãããšããã¹ãŠãæ©èœããããã«ãªããŸããã
ããã«ã¡ã¯ãã¿ããªã
@cgohlkeã«ãã£ãŠããããææ°ã®numpy + mkl1.13ããã±ãŒãžãã€ã³ã¹ããŒã«ã
Windows7ã§Python3.6.164ãããã䜿çšããŠAnacondaãå®è¡ããŠããŸãã
ãã®åŸããã®DLLã®åé¡ãçºçããŸãããã以åã¯åããµã€ãã®v1.12ã§æ£åžžã«æ©èœããŠããŸããã
ããã«ãå®éã«ã¯ãã¹ãŠã®ã³ãŒããJupyterããŒãããã¯ã§æ©èœããŸããããã¯ã³ã³ãœãŒã«ã§ã®ã¿çºçããŸãã
@carlklAnacondaãã©ã«ããŒã§_init_numpy_mkl
ãæ€çŽ¢ããŸãããããã®æååãå«ããã¡ã€ã«ãèŠã€ãããŸããnumpy/core
ãPATH
ç°å¢å€æ°ã«æåã§è¿œå ããŠãæ©èœããŸããã§ããã
ä»ã«äœãææ¡ã¯ãããŸããïŒ
ããããšãã
skimageãã€ã³ããŒããããšããmkl_intel_thread.dllãèªã¿èŸŒããŸããããšããåé¡ãçºçããŸããã
Windows / system32ã«mkl_intel_thread.dllãèŠã€ãããªãã®ã§ã@ cgohlkeãè¿°ã¹ãããã«ããã®ãã©ã«ããŒå
ã®libiomp5md.dllãåé€ããŸãããåäœããŸããããããšãããããŸãã åé¡ã¯ç§ãäœé±éãæ©ãŸããŠããŸããã ãšã«ãããç§ã¯ä»ã®äººããã®åé¡ã«ééããããšãããããå©ããåŸãããšãã§ããããšãé¡ã£ãŠããŸãã libiomp5md.dllãèŠã€ããŠã¿ãŠãã ãããããã¯åœ¹ç«ã€ãããããŸããã
ãã®å Žåãwindows / system32ããMKLDLLãåé€ããªããŠãã httpsïŒ //github.com/numpy/numpy/issues/6923#issuecomment-169073613ãæ©èœããã®ã§ããããã ãã®ã¹ããããã¯ãè¿œå ã®ã©ã€ãã©ãªãPATHç°å¢å€æ°ã«æž¡ããããä»ã®ããªãã¯ã䜿çšãããããããšãªããnumpy / coreãã©ã«ããŒã«7ã€ïŒãã¹ãŠã§ã¯ãªãïŒã®MKLDLLãããŒãã§ããããšã瀺ããŠããŸãã ãããã®7ã€ã®DLLãæ£ããé åºã§ããŒãããããšãéèŠã§ãã ä»ã®ãã¹ãŠã®å¿ èŠãªMKLDLLã¯ãwindows / system32ãã©ã«ããŒã§ã¯ãªãnumpy / coreããèªåçã«ããŒããããŸãã
ãããèãããããã¹ãŠã®ã·ããªãªã§æ©èœãããã©ããã¯ãŸã äžæã§ãã ããšãã°ãåçµãããPythonã¢ããªã±ãŒã·ã§ã³ã ãŸããWindows OSã®ããŒãžã§ã³ã§ã¯ãDLLã®èªã¿èŸŒã¿åäœãç°ãªãå ŽåããããŸãã
ãã®å€çš®ãããã«èª¿æ»ããããšã¯ç§ã«ã¯æå©ã§ããããã«æãããŸãã
SetDefaultDllDirectories
ãè¡ã£ããæ¥ããããïŒ10229ãè¿œå ããïŒ11493ãåé€ããŸããã ç§ãã¡ã¯ããã§ã§ããéãé²ãã ãšæããŸãã æè¯ã®ãªãã·ã§ã³ã¯ããã¹ããmklã®ä»ã®ã³ããŒãåé€ããããšã§ãã
åæã§ããªãå Žåã¯ãå床éããŠãã ããã
æãåèã«ãªãã³ã¡ã³ã
@cgohlkeãããã¯ç§ã®Windowsãã£ã¬ã¯ããªã«ããDLLã§ãïŒ
PythonãåŒã³åºãåã«
SET PATH=;
PATHããªã»ããããããšãããšã¯ã©ãã·ã¥ããŸãããäžèšã®DLLãWindowsãã£ã¬ã¯ããªããå®å šã«åé€ãããšã¯ã©ãã·ã¥ãåæ¢ããŸãã ãã¹å è¡åé¡@carlklã®ããã§ãã