求助:reticulate无法切换Python路径至Python3.6的问题
解决RStudio中reticulate仍使用Python2.7的问题
咱先从最可能的错误点帮你排查:
1. use_python()的路径完全错了!
你现在传入的是/usr/local/lib/python3.6/site-packages——这是Python存储第三方包的目录,而use_python()需要的是Python解释器本身的二进制文件路径,比如/usr/local/bin/python3.6或者/usr/bin/python3.6这类。
怎么找到正确路径?打开终端输入:
which python3.6
这条命令会输出Python3.6可执行文件的绝对路径,把它替换到代码里:
library(reticulate) use_python("/usr/local/bin/python3.6", required = TRUE) # required=TRUE会强制校验路径有效性,避免无效设置 py_config()
2. 会话缓存导致设置不生效
如果在你运行use_python()之前,这个RStudio会话已经加载过Python(哪怕是不小心触发的),reticulate会缓存默认的Python2.7环境,后续的路径设置就不会生效。解决办法很简单:
- 彻底关闭RStudio(不是最小化哦)
- 重新打开后,第一时间运行
library(reticulate)+ 修正后的use_python()代码,再执行py_config()
3. 系统环境变量覆盖了你的设置
如果你的系统里设置了RETICULATE_PYTHON环境变量,并且指向的是Python2.7,reticulate会优先使用这个环境变量指定的版本。你可以在R里先检查:
Sys.getenv("RETICULATE_PYTHON")
如果输出是Python2.7的路径,咱们可以临时修改当前会话的环境变量:
Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3.6") library(reticulate) py_config()
如果想永久生效,可以在你的.bashrc或.bash_profile文件里添加一行:
export RETICULATE_PYTHON=/usr/local/bin/python3.6
保存后重启终端和RStudio就好。
4. 确认Python3.6是否正常安装
有时候可能你以为装了Python3.6,但实际路径不对或者安装不完整。在终端输入:
python3.6 --version
如果能正常输出Python 3.6.x,说明没问题;如果报错,可能需要重新安装Python3.6或者调整路径配置。
内容的提问来源于stack exchange,提问作者hackerman
相关产品推荐
相关产品推荐

