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 加载它来实现它。
我使用 miniforge
在我的 Apple M1 上安装了 Pythonbrew 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 加载它来实现它。