在 RETICULATE_PYTHON 环境变量中指定网状 python 路径

cle*_*ens 9 r rstudio reticulate

每当我在 RStudio 中使用 reticulate 时,默认 REPL 都会使用python2.7,但我想使用python3默认值。我已将 python 路径添加到python3环境.bashrc变量中RETICULATE_PYTHON,当我从命令行使用 R 和 reticulate 时,Sys.getenv('RETICUALTE_PYTHON')返回/usr/bin/python3. 如果使用在命令行中打开 REPL,我会得到正确的路径。如果我在 RStudio 中执行相同操作,我会得到一个空字符串。

R
Run Code Online (Sandbox Code Playgroud)
Sys.getenv('RETICULATE_PYTHON')
Run Code Online (Sandbox Code Playgroud)

在 R 中返回(从命令行):

[1] "/usr/bin/python3"

在 RStudio 中:

[1] ""

在 RStudio 终端中,输出是正确的:

Sys.getenv('RETICULATE_PYTHON')
Run Code Online (Sandbox Code Playgroud)

另外,当我从命令行启动 R 时,py_config()是这样的:

> library(reticulate)
> py_config()
python:         /usr/bin/python3
libpython:      /usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6.so
pythonhome:     /usr:/usr
version:        3.6.7 (default, Oct 22 2018, 11:32:17)  [GCC 8.2.0]
numpy:          /usr/lib/python3/dist-packages/numpy
numpy_version:  1.14.5

NOTE: Python version was forced by RETICULATE_PYTHON
Run Code Online (Sandbox Code Playgroud)

但在 RStudio 中是这样的:

> library(reticulate)
> py_config()
python:         /usr/bin/python
libpython:      /usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so
pythonhome:     /usr:/usr
version:        2.7.15+ (default, Oct  2 2018, 22:12:08)  [GCC 8.2.0]
numpy:          /usr/lib/python2.7/dist-packages/numpy
numpy_version:  1.14.5

python versions found: 
 /usr/bin/python
 /usr/bin/python3
Run Code Online (Sandbox Code Playgroud)

重新启动 RStudio 没有帮助。关于如何让 RStudio 使用正确的 python 二进制文件有什么建议吗?

nba*_*020 7

当遇到类似的问题时,我通过在加载包之前reticulate指定Python配置来解决它:

Sys.setenv(RETICULATE_PYTHON = "C:\\ProgramData\\Anaconda3")
library(reticulate)
Run Code Online (Sandbox Code Playgroud)


小智 7

我使用的解决方案只是使用“工具”>“全局选项”将 RStudio 的默认 Python 解释器(Windows 为 2021.09.1)设置为我希望 RStudio 使用的解释器的路径。

就我而言,我也使用“ C:/tools/Anaconda3/envs/dev/python.exe”来设置它。

我认为同样的解决方案也适用于 Linux。RStudio 选项