Apple Silicon 上的 Matlab python 集成

Matlab python integration on Apple Silicon

我使用 miniforge

在我的 Apple M1 上安装了 Python
brew install --cask miniforge   

但我无法在 MATLAB 上使用 Conda 环境:

>> pyenv('Version', '/opt/homebrew/Caskroom/miniforge/base/envs/matpy39/bin/python3')

ans = 

  PythonEnvironment with properties:

          Version: "3.9"
       Executable: "/opt/homebrew/Caskroom/miniforge/base/envs/matpy39/bin/python3"
          Library: "/opt/homebrew/Caskroom/miniforge/base/envs/matpy39/lib/libpython3.9.dylib"
             Home: "/opt/homebrew/Caskroom/miniforge/base/envs/matpy39"
           Status: NotLoaded
    ExecutionMode: InProcess

>> py.list({1})
Unable to resolve the name py.list.

但是,如果我使用内置 python 版本的 Mac,它确实有效:

>> pyversion('/usr/bin/python3')
>> py.list({1})

ans = 

  Python list with no properties.

    [1.0]

我不确定如何才能让 MATLAB 使用特定的 Conda 环境

Homebrew 现在可以在 Apple Silicon 上构建本机 ARM/M1 二进制文件。 Matlab 是 Rosetta 仿真下的 x64 二进制 运行。我怀疑问题是您无法将 ARM 库(自制 Python)加载到 x64/Rosetta 进程(Matlab)中。我敢打赌 macOS 的系统 Python 发行版是一个“通用”构建或类似的东西,可以加载到任何一种进程中。

您可以通过在 Homebrew 之外安装 Miniforge 或 Anaconda 的 x64 版本并告诉 Matlab 加载它来实现它。

看看https://www.anaconda.com/blog/apple-silicon-transition