How to change python path?

128 次查看(过去 30 天)
Dominik Mattioli
Dominik Mattioli 2019-6-13
回答: Hussein Adel 2020-10-19
I'm trying to call a python script that imports tensorflow. I point python to my Anaconda-built python executable and I add the environment containing my installed libraries (including tensorflow) to the python path but I get the following error:
Error using loadNNmodel><module> (line 2)
Python Error: ModuleNotFoundError: No module named 'tensorflow'
Am I setting the python path correctly? Could the error be a result of my use of an anaconda environment? See code below:
% Specify Anaconda Python Executable Library.
pyExec = 'C:\Users\xxxx\AppData\Local\Continuum\anaconda3\python.exe';
NNenvFolder = 'C:\Users\xxxx\AppData\Local\Continuum\anaconda3\envs\NN';
[ver, exec, loaded] = pyversion(pyExec);
This works fine...
pyversion
version: '3.7'
executable: 'C:\Users\xxxx\AppData\Local\Continuum\anaconda3\python.exe'
library: 'C:\Users\xxxx\AppData\Local\Continuum\anaconda3\python37.dll'
home: 'C:\Users\xxxx\AppData\Local\Continuum\anaconda3'
isloaded: 1
But then the error comes from:
% Ensure python-matlab integration code is on matlab path.
pyFolder = fullfile(matlabroot, 'toolbox', 'matlab', 'external', 'interfaces', 'python');
addpath(pyFolder);
% Add folders to python system path.
insert(py.sys.path, int64(0), pyExec);
insert(py.sys.path, int64(0), NNenvFolder);
insert(py.sys.path, int64(0), pyFolder);
% Load model via python script (named 'loadNNmodel.py').
py_loadModel = py.importlib.import_module('loadNNmodel')

回答(2 个)

Dominik Mattioli
Dominik Mattioli 2019-6-18
After some research, I've discovered that MATLAB needs to be able to find the correct version and install of python, but adding an anaconda environment adds some additional overhead that would need to be accounted for in the environment variables to allow MATLAB to find the python modules. It is probably doable, but probably more trouble than it is worth.
Instead, install python and the relevant libraries from the command line using pip and then point to that python version and folders.
pcPythonExe = 'C:\Users\dmattioli\AppData\Local\Programs\Python\Python37\python.exe';
[ver, exec, loaded] = pyversion(pcPythonExe); pyversion
>> pyversion
version: '3.7'
executable: 'C:\Users\dmattioli\AppData\Local\Programs\Python\Python37\python.exe'
library: 'C:\Users\dmattioli\AppData\Local\Programs\Python\Python37\python37.dll'
home: 'C:\Users\dmattioli\AppData\Local\Programs\Python\Python37'
isloaded: 1
% Add folders to python system path.
pyLibraryFolder = 'C:\Users\dmattioli\.PyCharm2019.1\system\python_stubs\278535617';
insert(py.sys.path, int64(0), pyLibraryFolder)

Hussein Adel
Hussein Adel 2020-10-19
I did a restart to matlab and it works

类别

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