Code:
import cntk
n = cntk.minus([1, 2, 3], [4, 5, 6]).eval()
print(n)
Problem:
If run the code line by line in python command line, it's ok.
If run "Python main.py", it's also ok.
But if run the code in PyCharm or Visual Studio Code, error occurs, PyCharm error dump:
Traceback (most recent call last):
File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\cntk_py.py", line 18, in swig_import_helper
return importlib.import_module(mname)
File "D:\Apps\Anaconda3\envs\Python3.53\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'cntk._cntk_py'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:/Dev/machine_learning/Test_CNTK/main.py", line 1, in <module>
import cntk
File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\__init__.py", line 11, in <module>
from .core import *
File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\core.py", line 10, in <module>
from . import cntk_py
File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\cntk_py.py", line 21, in <module>
_cntk_py = swig_import_helper()
File "D:\Apps\Anaconda3\envs\Python3.53\lib\site-packages\cntk\cntk_py.py", line 20, in swig_import_helper
return importlib.import_module('_cntk_py')
File "D:\Apps\Anaconda3\envs\Python3.53\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified module could not be found.
Environment:
Solved
Because it can't find the DLL files with CNTK (e.g. CNTKLibrary-2.0.dll, EvalDll.dll), these DLLs are in the same directory of "python.exe" after installation of CNTK.
There are 2 solutions:
(suppose the PYTHONDIR is the directory where python.exe is in)
change the system environment PATH to include PYTHONDIR
add the following code before "import cntk":
import os; os.environ['PATH'] = PYTHONDIR + ';' + os.environ['PATH']