无法在 MacOS arm64 架构中使用“reticulate”
Cannot get `reticulate` working in MacOS arm64 architecture
我一直在尝试在 RStudio 中使用 Python,但显然版本不匹配。我安装了网状版本 1.23。我收到以下错误。
> reticulate::repl_python()
Error in py_initialize(config$python, config$libpython, config$pythonhome, :
/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib - dlopen(/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib, 0x000A): tried: '/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libpython3.8.dylib' (no such file)
但是,我安装了 Python — 我可以通过 Anaconda 使用它。我也可以使用 Sys.which("python")
.
来验证它
> Sys.which("python")
python
"/usr/bin/python"
再检查一次。
> reticulate::conda_list()
name python
1 r-miniconda /Users/harshvardhan/Library/r-miniconda/bin/python
2 base /Users/harshvardhan/opt/anaconda3/bin/python
3 r-reticulate /Users/harshvardhan/opt/anaconda3/envs/r-reticulate/bin/python
每当我 运行 我的 .py
脚本中的任何 Python 代码时,我都会收到以下错误。
> reticulate::repl_python()
Error in py_initialize(config$python, config$libpython, config$pythonhome, :
/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib - dlopen(/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib, 0x000A): tried: '/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libpython3.8.dylib' (no such file)
> import numpy as np
Error: unexpected symbol in "import numpy"
这是系统信息。任何帮助都会很棒。
> Sys.info()
sysname
"Darwin"
release
"21.2.0"
version
"Darwin Kernel Version 21.2.0: Sun Nov 28 20:29:10 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T8101"
nodename
"Harshvardhans-MacBook-Air.local"
machine
"arm64"
login
"root"
user
"harshvardhan"
effective_user
"harshvardhan"
一些我试过的资源都没有用。如果我错过了什么,我会欣喜若狂。
我想我明白了。这是对我有用的。
首先,我打开了终端并找到了我的 Python 3 位置。
which python
给了我
/Users/harshvardhan/opt/anaconda3/bin/python
然后,我加载了 reticulate
。
library(reticulate)
然后我 运行 use_python()
和 required = T
按照建议 。然后它按预期工作了!
library("reticulate")
use_python("/usr/bin/python", required = T)
sys = import("sys")
>>> for i in range(10):
... print(i)
...
0
1
2
3
4
5
6
7
8
9
我一直在尝试在 RStudio 中使用 Python,但显然版本不匹配。我安装了网状版本 1.23。我收到以下错误。
> reticulate::repl_python()
Error in py_initialize(config$python, config$libpython, config$pythonhome, :
/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib - dlopen(/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib, 0x000A): tried: '/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libpython3.8.dylib' (no such file)
但是,我安装了 Python — 我可以通过 Anaconda 使用它。我也可以使用 Sys.which("python")
.
> Sys.which("python")
python
"/usr/bin/python"
再检查一次。
> reticulate::conda_list()
name python
1 r-miniconda /Users/harshvardhan/Library/r-miniconda/bin/python
2 base /Users/harshvardhan/opt/anaconda3/bin/python
3 r-reticulate /Users/harshvardhan/opt/anaconda3/envs/r-reticulate/bin/python
每当我 运行 我的 .py
脚本中的任何 Python 代码时,我都会收到以下错误。
> reticulate::repl_python()
Error in py_initialize(config$python, config$libpython, config$pythonhome, :
/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib - dlopen(/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib, 0x000A): tried: '/Users/harshvardhan/opt/anaconda3/lib/libpython3.8.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/lib/libpython3.8.dylib' (no such file)
> import numpy as np
Error: unexpected symbol in "import numpy"
这是系统信息。任何帮助都会很棒。
> Sys.info()
sysname
"Darwin"
release
"21.2.0"
version
"Darwin Kernel Version 21.2.0: Sun Nov 28 20:29:10 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T8101"
nodename
"Harshvardhans-MacBook-Air.local"
machine
"arm64"
login
"root"
user
"harshvardhan"
effective_user
"harshvardhan"
一些我试过的资源都没有用。如果我错过了什么,我会欣喜若狂。
我想我明白了。这是对我有用的。
首先,我打开了终端并找到了我的 Python 3 位置。
which python
给了我
/Users/harshvardhan/opt/anaconda3/bin/python
然后,我加载了 reticulate
。
library(reticulate)
然后我 运行 use_python()
和 required = T
按照建议
library("reticulate")
use_python("/usr/bin/python", required = T)
sys = import("sys")
>>> for i in range(10):
... print(i)
...
0
1
2
3
4
5
6
7
8
9