py.os.popen error under Windows
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Nagarjuna Manchineni
2017-6-20
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 个评论
另请参阅
类别
在 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!