【问题标题】:Specify reticulate python path in RETICULATE_PYTHON environment variable在 RETICULATE_PYTHON 环境变量中指定网状 python 路径
【发布时间】:2020-01-21 13:29:50
【问题描述】:

每当我在 RStudio 中使用 reticulate 时,默认的 REPL 是使用 python2.7,但我想默认使用 python3。 我已在环境变量RETICULATE_PYTHON 中将python3 的python 路径添加到我的.bashrc 中,当我使用R 并从命令行进行网状化时,Sys.getenv('RETICUALTE_PYTHON') 返回/usr/bin/python3。如果使用在命令行中打开 REPL,我会得到正确的路径。如果我在 RStudio 中做同样的事情,我会得到一个空字符串。

R
Sys.getenv('RETICULATE_PYTHON')

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

[1] "/usr/bin/python3"

在 RStudio 中:

[1] ""

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

echo $RETICULATE_PYTHON
/usr/bin/python3

另外,当我从命令行启动 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

但在 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

重新启动 RStudio 没有帮助。有关如何使 RStudio 也使用正确的 python 二进制文件的任何建议?

【问题讨论】:

  • 看起来 RStudio 仍在您的 PATH 中加载 python 版本。试试这里的提示:rstudio.github.io/reticulate/articles/versions.html
  • 没错,通常设置 RETICULATE_PYTHON 变量可以解决这个问题,但由于某种原因它不起作用。当然我可以在每次使用 reticulate 的时候设置路径,但这太麻烦了
  • .bashrc中设置环境变量和在.Rprofile中设置的效果一样吗?
  • 您是否尝试过将export RETICULATE_PYTHON=/usr/bin/python3 添加到.profile,基于help.ubuntu.com/community/EnvironmentVariables : Shell config files such as ~/.bashrc, ~/.bash_profile, and ~/.bash_login are often suggested for setting environment variables. While this may work on Bash shells for programs started from the shell, variables set in those files are not available by default to programs started from the graphical environment in a desktop session.
  • 虽然所有选项(.bashrc、.profile、.Renviron)都适用于命令行中的 R,但仅添加行 Sys.setenv('RETICULATE_PYTHON'='/usr/bin/python3') 适用于 RStudio

标签: r rstudio reticulate


【解决方案1】:

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

Sys.setenv(RETICULATE_PYTHON = "C:\\ProgramData\\Anaconda3")
library(reticulate)

【讨论】:

    【解决方案2】:

    我使用的解决方案只是使用 Tools > Global Options 将 RStudio 的默认 Python 解释器(Windows 为 2021.09.1)设置为我希望 RStudio 使用的解释器的路径。

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

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

    【讨论】:

      【解决方案3】:

      The documentation 说要在.Rprofile 中设置它

      Sys.setenv(RETICULATE_PYTHON="/path/to/your/preferred/python")
      

      如果你总是想要一个固定的 Python。否则,请执行 as @nba2020 suggests 以将其设置在特定脚本中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-18
        • 2017-01-23
        • 1970-01-01
        • 2019-09-26
        • 1970-01-01
        • 1970-01-01
        • 2015-02-16
        • 2020-04-27
        相关资源
        最近更新 更多