MATLAB py.sys.executable on Windows points to MATLAB.exe and not python.exe

1 Ansicht (letzte 30 Tage)
I'm working on calling a Python library from MATLAB. The sys.executable property, which should refer to the Python executable, actually points to MATLAB.exe but only on Windows.
  • Python on LInux sys.executable is a Python string /usr/XXX/bin/python, as it should be
  • MATLAB in Linux: py.sys.executable is /usr/XXX/bin/python, as it should be
  • Python on Windows, sys.executable is "C:\..\python.exe", as it should be
  • MATLAB on Windows, py.sys.executable is "C:\...\MATLAB.exe" , wrong!
This was tested in Windows 10 with MATLAB R2022a and Python 3.9.13

Akzeptierte Antwort

Paul Rutten
Paul Rutten am 15 Aug. 2022
Hi Michael,,
I can confirm that the py.sys.executable points to the MATLAB executable on Windows 10 with MATLAB 19a, 21a, 21b, and 22b (I do not have 22a installed). I do not know about a workaround for this.
The sys.executable attribute in the Python process also points to the MATLAB executable. This can be worked around by expanding on the workaround provided for the incorrect [sys.prefix and sys.exec_prefix] attributes in the Python process and ensuring that the sys.executable attribute in the Python process points to the correct executable.
For me overriding the incorrect attribute values in the Python sys module resolved some issues with using Python modules from MATLAB.
  1 Kommentar
Michael Posa
Michael Posa am 15 Aug. 2022
Thank you. The link you pointed to do did create a workaround. For completeness, from MATLAB, I can call
if ispc
py.FixSysExecutable.SetSysExecutable(pyenv().Executable)
end
using the Python file FixSysExecutable.py.
import sys
def SetSysExecutable(path):
sys.executable = path
return sys.executable

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Call Python from MATLAB finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by