无法在 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