Matlab pyversion 命令找不到 python3.4 的库



我想从matlab调用python3.4。默认版本是python2.7,当我在matlab中运行pyversion时,它显示:

   version: '2.7'
executable: '/usr/bin/python'
   library: 'libpython2.7.so.1.0'
      home: '/usr'
  isloaded: 0

我通过在 matlab 中运行py.list()进行了测试,它可以工作。

然后我想将版本更改为 python3,所以我运行

pyversion(/usr/bin/python3)

以更改 Python 的版本。

但是现在py.list()行不通,据说Undefined variable "py" or class "py.list"..另外,现在我运行pyversion,信息显示:

version: '3.4'
executable: '/usr/bin/python3.4'
library: ''
home: '/usr'
isloaded: 0

"库"变为空。

我如何解决这个问题才能正确运行 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

恰好在这篇文章的 5 天内遇到了同样的问题。

显然,matlab 使用以下脚本来搜索库:

MATLABROOT/toolbox/matlab/external/interfaces/python/+python/+internal/pyinfo.py

其中 MATLABROOT 是您在安装 matlab 时选择的。

从理论上讲,您可以编辑 pyinfo.py 以在其搜索中包含"/usr/lib/x86_64-linux-gnu"。 例如,通过将另一个方法附加到仅返回"/usr/lib/x86_64-linux-gnu"的搜索位置。 但我不知道这样做的许可/法律/保修后果是什么,所以请自行决定使用。

我遇到了类似的问题(R2015b,Ubuntu(,但没有用公认的答案解决它。我必须执行

python3 MATLABROOT/toolbox/matlab/external/interfaces/python/+python/+internal/pyinfo.py

无需从命令行修改它以使其工作。

运行 python

>>> import sys
>>> print(sys.executable)

复制答案并在 Matlab 中使用它,如下所示:

>> pyversion('C:Users84757AppDataLocalProgramsPythonPython38python.exe');

最新更新