如何在OSX High Sierra中为网状软件包正确设置Python路径?

时间:2018-09-23 03:44:23

标签: python r reticulate

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

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)

很明显,我已经尝试使用Google搜索解决方案,但不幸的是没有结果。 任何指导将不胜感激。


更新: 我终于得到它的工作依据:

  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会话,否则网状结构将继续引用现有的Python版本。

简而言之,问题是由在对reticulate::use_python函数的初始调用中指定的错误路径引起的,并且随后具有正确路径的调用不会生效,因为它需要一个“新” R会话。 / p>

1 个答案:

答案 0 :(得分: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版本,而不是一个不包含它的版本。 / usr / local / bin / python3中的版本是否具有NumPy?

  

很明显,我已经尝试使用谷歌搜索解决方案

有时候,只搜索功能名称“ reticulate :: use_python”会有所帮助。