我已经安装了python 2.7.8以及OSX 10.9.4附带的2.7.5。
现在我如何将rPython
指向python 2.7.8?
我已经修改了OSX .bash_profile
,如下所示,指向更新的python安装。
export PATH=/usr/local/Cellar/python/2.7.8/bin/:$PATH:usr/local/bin:
现在当我从终端运行python时,它正确运行较新的版本
mba:~ tommy$ which python
/usr/local/Cellar/python/2.7.8/bin//python
然而,rPython
仍然看到2.7.5。
> library(rPython)
Loading required package: RJSONIO
> python.exec("import sys; print(sys.version)")
2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]
看起来.bash_profile
根本没有被R使用......所以我试图修改R中的PATH但是仍然没有运气。
> Sys.getenv("PATH")
[1] "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"
> Sys.setenv(PATH = "usr/local/Cellar/python/2.7.8/bin")
> library(rPython)
Loading required package: RJSONIO
> python.exec("import sys; print(sys.version)")
2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]
我尝试删除并重新安装rPython
包,以为它可能正在使用它在安装时找到的Python版本。也没有运气。
我尝试从源代码安装,看看是否有任何帮助......没有运气。
好吧所以看起来这个问题与rPython本身无关。
http://cran.r-project.org/web/packages/rPython/INSTALL
包rPython依赖于Python(> = 2.7)。
它需要Python及其标头和库。这些可以 在类似Debian的Linux中的python和python-dev包中找到 分布。
在多个Python版本共存的系统中,用户可以选择 在安装时使用的Python版本。默认情况下 包将使用
给出的Python版本安装$ python --version
当我在终端上运行时..
mba:src tommy$ python --version
Python 2.7.8
但是当我在R中运行它时......
> system("python --version")
Python 2.7.5
所以问题只是R不使用OSX的.bash_profile
。我需要弄清楚如何在PATH
之外更改.bash_profile
,或让R使用.bash_profile
。
我还可以尝试rPython
使用2.7.8
吗?
答案 0 :(得分: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
答案 1 :(得分:2)
我知道这是一个老问题,但我遇到了与OP相同的问题,这是我找到的解决方案。
首先,我将RPYTHON_PYTHON_VERSION=3
添加到~/.bash_profile
。我没有使用rPython
安装install.packages
,而是使用R CMD INSTALL
从CRAN下载源代码并从命令行安装。这很好用,检测到我在系统上安装的python3
版本。
答案 2 :(得分:1)
您可以查看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版本。
答案 3 :(得分:1)
我发现这篇文章试图让R使用所需的Python版本并找到一个适合我的解决方案(在OSX Yosemeti上使用Rstudio)。
这是我的终端使用的Python,这是我想要R找到的:
$ which python
/usr/local/bin/python
在R中,system('which python')
生成/usr/bin/python
。我可以看到这是因为/usr/bin
位于/usr/local/bin
中Sys.getenv('PATH')
的右侧。
我尝试在~/.Renviron
或~/.Rprofile
中更改我的PATH,但这并没有解决问题。这是因为在内核启动完成之前还有另一个Rprofile
文件正在运行。
要查找我系统上的所有Rprofile
文件,我运行了以下命令:
cd /usr
sudo find . -name "*Rprofile*" -print
其中一个文件 - R_HOME/library/base/R/Rprofile
- 包含一些代码,表示它处理了我操作系统上的PATH冲突。我猜它选择了错误的PATH可能的选择。将以下行添加到该文件的 end ,在重新启动R内核后向我展示了Rstudio中的正确路径:
.Internal(Sys.setenv("PATH", paste("/usr/local/bin", Sys.getenv("PATH"), sep=":")))
答案 4 :(得分:1)
对我有用的是我在install.packages中指定了lib和版本,就像这样
install.packages("rPython",lib= "path_to_your_R/R/library/3.1", configure.vars= "RPYTHON_PYTHON_VERSION=3")
它确实安装了3.x
下的python版本