任务:在 Windows 7(所有 x64)上使用 Python 3.x 从 Matlab 2013b 调用函数。
问题:是否有允许我这样做的 Python 包?
我已经尝试过:
- mlabwrap
- python-matlab-bridge
- pymatlab
但这些都不适用于上面给出的配置。
感谢您提供有关使用 Python 3.x 的工作配置的任何信息。
如果您需要更详细的信息,请告诉我。
更新:我目前正在尝试使用 Matlab2011b 和 Pyhton 2.7 来完成这项工作,因为这些似乎是最常用的版本。现在我陷入了以下困境:
python-matlab-bridge 我可以毫无问题地导入模块,但是一旦启动会话,Matlab 命令窗口就会弹出,没有其他任何反应。Python 窗口显示:
Starting MATLAB on ZMQ socket tcp://127.0.0.1:55555
Send 'exit' command to kill the server
............................................................Matlab session timed
out after 60 seconds
MATLAB failed to start
Press any key to continue . . .
每次都会发生这种情况,并且没有给出错误。
mlabwrap 我尝试使用本指南安装 mlabwrap 。在键入“python setup.py install”时,会弹出一个 Matlab 命令窗口,然后什么也没有发生。如果我关闭命令行窗口,Python 输出显示:
WINDOWS SPECIFIC ISSUE? Unable to remove c:\users\martin\appdata\local\temp\tmp1
y2kdk; please delete it manually
[Error 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem ande
ren Prozess verwendet wird: 'c:\\users\\martin\\appdata\\local\\temp\\tmp1y2kdk'
INSTALL ABORT: 'matlab -nodesktop -nosplash -wait -r "fid = fopen(\'c:\\users\\m
artin\\appdata\\local\\temp\\tmp1y2kdk\', \'wt\');fprintf(fid, \'%s%c%s%c%s%c\',
version, 10, matlabroot, 10, computer, 10);fclose(fid); quit"' RETURNED ERROR C
ODE -805306369
PLEASE MAKE SURE matlab IS IN YOUR PATH!
我的%Path%
样子是这样的(只有重要的部分;):
D:\MATLAB\R2011b\bin;C:\Program Files\ZeroMQ 4.0.4\lib;D:\Python27;D:\Python27\scripts;D:\MATLAB\R2011b\runtime\win64;D:\MATLAB\R2011b\extern\lib\win64\microsoft;D:\MATLAB\R2011b\bin\win64
感谢您在 Windows 上获得 Matlab 和 Python 之间的任何连接的任何帮助!我真的不明白为什么这些都不起作用......
更新 2:我现在可以安装 mlabwrap,但我无法启动它。当我尝试导入 mlabwrap 时,Matlab 命令窗口会打开并在一分钟后关闭。Python 输出为:
>>> import mlabwrap
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python27\lib\site-packages\mlabwrap.py", line 645, in <module>
mlab = MlabWrap()
File "D:\Python27\lib\site-packages\mlabwrap.py", line 405, in __init__
self._session = mlabraw.open(os.getenv("MLABRAW_CMD_STR", ""))
mlabraw.error: Unable to start MATLAB(TM) engine
我仔细检查了 Matlab 的 engdemo 是否正常工作。