py.os.popen error under Windows
2 views (last 30 days)
Show older comments
Later matlab versions can call python libraries directly. I came across a problem when calling py.os.popen or py.subprocess.check_output. From the error message below, os.popen() seems calling subprocess:
h = py.os.popen('dir');
Error using subprocess>_make_inheritable (line 948)
Python Error: OSError: [WinError 6] The handle is invalid
Error in subprocess>_get_handles (line 898)
p2cread = self._make_inheritable(p2cread)
Error in subprocess>__init__ (line 665)
errread, errwrite) = self._get_handles(stdin, stdout, stderr)
Error in os>popen (line 978)
bufsize=buffering)
More info about the system: Matlab 2017a under Windows 7, python 3.6.
There is no error under Linux with python 2.7.6, matlab R2015a.
0 Comments
Answers (1)
Nagarjuna Manchineni
on 20 Jun 2017
To call Python libraries from MATLAB, you need to install a supported version of the reference implementation (CPython) for Python. MATLAB R2017a supports versions 2.7, 3.4, and 3.5.
I tried the same command on MATLAB R2017a with Python version 3.5 and everything worked fine. I would recommend to use the supported version of Python (3.5).
See the following documentation page for more reference:
2 Comments
See Also
Categories
Find more on Call Python from MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!