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 二进制文件有什么建议吗?
当遇到类似的问题时,我通过在加载包之前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”来设置它。