Run Python script with numpy and pandas in Matlab

조회 수: 57 (최근 30일)
Francesc Naya
Francesc Naya 2021년 12월 10일
댓글: Luc VIGNAUD 2022년 12월 5일
I am trying tu run a python script using the Matlab "pyrunfile" function (Matlab version is 2021b and Python version is 3.9 using on Anaconda)
This function works when I run the following simple Python script :
> greetings = "hello"
> print(greetings)
But it does not work for another Python script that includes :
> import numpy as np
> import pandas as pd
> import matplotlib.pyplot as plt
It gives me the following error (I have checked NumPy version is 1.20.3):
Error using __init__><module> (line 48)
Python Error: ImportError:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.
We have compiled some common reasons and troubleshooting tips at:
https://numpy.org/devdocs/user/troubleshooting-importerror.html
Please note and check the following:
* The Python version is: Python3.9 from "C:\Program Files\MATLAB\R2021b\bin\win64\MATLAB.exe"
* The NumPy version is: "1.20.3"
and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.
Original error was: DLL load failed while importing _multiarray_umath: The specified module could not be found.
Error in __init__><module> (line 145)
Error in <string>><module> (line 1)
Thank you
  댓글 수: 1
Ahmed Ben Hassine
Ahmed Ben Hassine 2022년 9월 9일
Hello ,
Could you find a solution to fix this ?
I have the same problem .
Thanks!

댓글을 달려면 로그인하십시오.

답변 (2개)

Sean de Wolski
Sean de Wolski 2021년 12월 10일
The python that MATLAB is calling apparently does not have numpy installed properly. Check your system path for the version of python in use.
A minimal working example I just made works fine:
npx.py
import numpy as np
x = np.array(1)
And
>> x = pyrunfile('npx.py','x')
x =
Python ndarray:
1
Use details function to view the properties of the Python object.
Use int64 function to convert to a MATLAB array.
>> double(x)
ans =
1
>>

Francesca Lorenzutti
Francesca Lorenzutti 2022년 10월 19일
Hello,
I just had the exact same problem. Just launch matlab from the anaconda prompt. Then, you don't need to run pyversion or pyenv, just use
p=pyrunfile("myscript.py");
This solved the problem for me.
Good luck!
  댓글 수: 1
Luc VIGNAUD
Luc VIGNAUD 2022년 12월 5일
"Just launch matlab from the anaconda prompt." was the solution for me (Python 3.9 & NumPy 1.20.3)
but remains unsupported solution !!!

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by