5 回答
我在 RStudio 中设置了以下命令,希望对您有所帮助。
> system("python --version")
Python 2.7.10
> Sys.setenv(PATH = paste("/usr/local/bin", Sys.getenv("PATH"),sep=":"))
> system("python --version")
Python 2.7.11
我知道这是一个老问题,但我遇到了与 OP 相同的问题,这是我发现的解决方案。
首先,我RPYTHON_PYTHON_VERSION=3
将~/.bash_profile
. rPython
我没有使用安装install.packages
,而是从 CRAN 下载源代码并使用R CMD INSTALL
. 这工作正常并检测到python3
我在系统上安装的版本。
您可以查看 rPython INSTALL 文件(对不起,也许我应该让它更明确)。它有一节介绍如何在多个共存时使用所需的 Python 版本安装 rPython。它说:
在多个 Python 版本并存的系统中,用户可以在安装时选择要使用的 Python 版本。默认情况下,软件包将使用提供的 Python 版本安装
$ python --version
但是如果适当地设置了 RPYTHON_PYTHON_VERSION 环境变量,则可以选择不同的。
例如,如果它被定义为
RPYTHON_PYTHON_VERSION=3.2
它将尝试使用 Python 3.2(在路径中寻找 python3.2 和 python3.2-config)。如果设置为
RPYTHON_PYTHON_VERSION=3
它将针对 3.x 分支内系统中的“规范”Python 版本进行安装。
对我有用的是我在 install.packages 中指定了 lib 和版本,就像这样
install.packages("rPython",lib= "path_to_your_R/R/library/3.1", configure.vars= "RPYTHON_PYTHON_VERSION=3")
它确实安装了 3.x 以下的 python 版本
我遇到了这篇文章,试图让 R 使用所需的 Python 版本,并找到了一个对我有用的解决方案(在 OSX Yosemeti 上使用 Rstudio)。
这是我的终端使用的 Python,这是我希望 R 找到的 Python:
$ which python
/usr/local/bin/python
在 R 中,system('which python')
产生/usr/bin/python
. 我可以看到这是因为在 in/usr/bin
的右侧。/usr/local/bin
Sys.getenv('PATH')
我尝试更改我的 PATH~/.Renviron
或~/.Rprofile
但它没有解决问题。这是因为Rprofile
在内核启动完成之前有另一个文件正在运行。
为了找到Rprofile
我系统上的所有文件,我运行了以下命令:
cd /usr
sudo find . -name "*Rprofile*" -print
其中一个文件 -- R_HOME/library/base/R/Rprofile
-- 包含一些代码,表示它处理我的操作系统上的 PATH 冲突。我猜它选择了可能选择的错误路径。将以下行添加到该文件的末尾,在重新启动我的 R 内核后向我显示了 Rstudio 中的正确路径:
.Internal(Sys.setenv("PATH", paste("/usr/local/bin", Sys.getenv("PATH"), sep=":")))