ale*_*xxx 4 python matlab python-3.x
我想从 matlab 调用 python3.4。默认版本是python2.7,当我在matlab中运行pyversion时,它显示:
version: '2.7'
executable: '/usr/bin/python'
library: 'libpython2.7.so.1.0'
home: '/usr'
isloaded: 0
Run Code Online (Sandbox Code Playgroud)
我通过py.list()在 matlab 中运行进行了测试,它有效。
然后我想将版本更改为python3,所以我运行
pyversion(/usr/bin/python3)
Run Code Online (Sandbox Code Playgroud)
更改python的版本。
不过现在py.list()不行了,据说Undefined variable "py" or class "py.list".。此外,现在我运行pyversion,信息显示:
version: '3.4'
executable: '/usr/bin/python3.4'
library: ''
home: '/usr'
isloaded: 0
Run Code Online (Sandbox Code Playgroud)
“图书馆”变空了。
我怎样才能解决这个问题以正确运行 python3.4?
我使用 Ubuntu 14.04,并且已经为 python3.4 安装了 Cython。我通过运行得到以下输出find /usr/lib -name libpython*
/usr/lib/python3.4/config-3.4dm-x86_64-linux-gnu/libpython3.4.so
/usr/lib/python3.4/config-3.4dm-x86_64-linux-gnu/libpython3.4dm.so
/usr/lib/python3.4/config-3.4dm-x86_64-linux-gnu/libpython3.4dm.a
/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu/libpython3.4.so
/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu/libpython3.4m.a
/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu/libpython3.4m.so
/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu/libpython3.4m-pic.a
/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so
/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.a
/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7-pic.a
/usr/lib/libpeas-1.0/loaders/libpython3loader.so
/usr/lib/libpeas-1.0/loaders/libpythonloader.so
/usr/lib/debug/usr/lib/libpython3.4m.so.1.0-gdb.py
/usr/lib/debug/usr/lib/x86_64-linux-gnu/libpython3.4m.so.1.0
/usr/lib/libreoffice/program/libpythonloaderlo.so
/usr/lib/x86_64-linux-gnu/libpython3.4m.so.1
/usr/lib/x86_64-linux-gnu/libpython3.4dm.so.1
/usr/lib/x86_64-linux-gnu/libpython3.4m.a
/usr/lib/x86_64-linux-gnu/libpython2.7.so
/usr/lib/x86_64-linux-gnu/libpython3.4m.so
/usr/lib/x86_64-linux-gnu/libpython3.4dm.so.1.0
/usr/lib/x86_64-linux-gnu/libpython2.7.a
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1
/usr/lib/x86_64-linux-gnu/libpython3.4m.so.1.0
/usr/lib/x86_64-linux-gnu/libpython3.4dm.so
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
/usr/lib/x86_64-linux-gnu/libpython3.4dm.a
Run Code Online (Sandbox Code Playgroud)
小智 5
碰巧在这篇文章的 5 天内遇到了同样的问题。
显然 matlab 使用以下脚本来搜索库:
MATLABROOT/工具箱/matlab/external/interfaces/python/+python/+internal/pyinfo.py
其中 MATLABROOT 是您在安装 matlab 时选择的。
理论上,您可以编辑 pyinfo.py 以在其搜索中包含“/usr/lib/x86_64-linux-gnu”。例如,通过在仅返回“/usr/lib/x86_64-linux-gnu”的搜索位置附加另一种方法。但我不知道这样做的许可/法律/保修后果是什么,因此请自行决定使用。