rPython在Mac OSX上使用错误的python安装

时间:2014-08-19 12:07:42

标签: r rpython

我已经安装了python 2.7.8以及OSX 10.9.4附带的2.7.5。

现在我如何将rPython指向python 2.7.8?

尝试#1

我已经修改了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)]

尝试#2

看起来.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)]

尝试#3

我尝试删除并重新安装rPython包,以为它可能正在使用它在安装时找到的Python版本。也没有运气。

尝试#4

我尝试从源代码安装,看看是否有任何帮助......没有运气。

更新

好吧所以看起来这个问题与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吗?

5 个答案:

答案 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/binSys.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版本