5

我已经使用从官方 Python 站点下载的官方 OSX 包将 Python 3.7 安装在 High Sierra 的默认位置。当我跑

which python3

我得到了路径

/Library/Frameworks/Python.framework/Versions/3.7/bin/python3

然后我在 R Studio 中运行以下行

reticulate::use_python(python = '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3')
sys <- import("sys")
sys$version

看来我还是指着2.7的默认安装

[1] "2.7.10 (default, Oct  6 2017, 22:29:07) \n[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]"

我尝试了许多其他路径,例如

/usr/local/bin/python3
/usr/local/bin
/Library/Frameworks/Python.framework/Versions/3.7/lib
/usr/bin/python
/Applications/Python 3.7

等,但似乎没有一个工作。(它仍然显示 2.7.10)

显然,我曾尝试在谷歌上搜索解决方案,但不幸的是无济于事。任何指导将不胜感激。


更新: 我终于让它工作了:

  1. 按照 serv-inc 的建议重新启动 R 会话
  2. 运行以下命令:

    library(reticulate) reticulate::use_python(python = '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3', required = T) sys <- import("sys") sys$version

    得到以下响应:

    [1] "3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) \n[Clang 6.0 (clang-600.0.57)]"

  3. 如果我错误地指定了不正确的路径,例如/usr/bin/python,我需要重新启动 R 会话,否则 reticulate 将继续引用现有的 Python 版本。

简而言之,问题是由于在初始调用reticulate::use_python函数时指定的路径不正确,随后使用正确路径的调用将不会生效,因为它需要“新鲜”的 R 会话。

4

1 回答 1

2

请参阅https://github.com/rstudio/reticulate/issues/45

library("reticulate")
use_python("/usr/bin/python", required = T)

在其他任何事情之前。

另请参阅https://github.com/rstudio/reticulate/issues/227

reticulate 总是更喜欢包含 NumPy 的 Python 版本,而不是不包含 NumPy 的版本。/usr/local/bin/python3 的版本是否有 NumPy?

显然,我已经尝试在谷歌上搜索解决方案

有时,只搜索函数名称“reticulate::use_python”会有所帮助。

于 2018-09-23T04:18:58.220 回答