- From the error message, it seems like matlab can find numba but can't find core. So first confirm this. Instead of importing core from numba, just import numba, and print its version. If successful, then it is indeed complaining about core, not numba.
- If numba can be imported, print its path. See which numba matlab actually imported. Make sure it is the correct one that you want to use. If not, play with PYTHONPATH env var to point to the correct one
- If numba can't be imported, play with PYTHONPATH env var to point to the correct one.
Failed to call python modules due to lack of 'core' in numba
조회 수: 63 (최근 30일)
이전 댓글 표시
First I run a test code by python, and test it in VS Code. It woked and printed right results with no errors.
But when I used to call python modules in matlab, An error happened: AttributeError: module 'numba' has no attribute 'core'.
Actually I can import core from numba in VS Code successfully.
Steps To Reproduce
Python Code:
# myfun.py
def test():
print('Hello,Matlab!')
def add(a, b):
c = a + b
return c
def test2():
from radis import calc_spectrum
from numba import core
s1 = calc_spectrum(
1900 ,
2000 ,
molecule="CO2",
isotope="1",
pressure=1.01325 ,
Tgas=500 ,
mole_fraction=0.1,
path_length=1 ,
databank="HITEMP2010-CO2",
verbose=False,
)
a = s1.get('abscoeff')
print(a)
if __name__ == '__main__':
a=test2()
Matlab Code:
[v, e, isloaded] = pyversion;
if isloaded
disp('To change the Python version, restart MATLAB, then call pyversion.')
else
pyversion('F:\Anaconda3\envs\radis-lab\python.exe')
end
if count(py.sys.path,' ') == 0 %Add file path to Python environment
insert(py.sys.path,int32(0),'');
end
py.print('Hello, Python!')
% reload module
clear classes
obj = py.importlib.import_module('myfun');
py.importlib.reload(obj);
py.myfun.test2()
댓글 수: 0
답변 (1개)
Yongjian Feng
2021년 8월 31일
I would recommand the following steps to narrow down the issue:
댓글 수: 7
Yongjian Feng
2021년 9월 2일
Yes, as explained before, virtualenv is challenging. If it is possible, try without it.
참고 항목
카테고리
Help Center 및 File Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!