我已经在OSX 10.9.4附带的2.7.5旁边安装了python 2.7.8.
现在我怎么能指向rPythonpython 2.7.8?
我已.bash_profile按如下方式修改了OSX ,以指向更新的python安装.
export PATH=/usr/local/Cellar/python/2.7.8/bin/:$PATH:usr/local/bin:
Run Code Online (Sandbox Code Playgroud)
现在,当我从终端运行python时,它正确运行较新的版本
mba:~ tommy$ which python
/usr/local/Cellar/python/2.7.8/bin//python
Run Code Online (Sandbox Code Playgroud)
但是,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)]
Run Code Online (Sandbox Code Playgroud)
它看起来.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)]
Run Code Online (Sandbox Code Playgroud)
我尝试删除并重新安装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
Run Code Online (Sandbox Code Playgroud)
但是当我在R中运行它...
> system("python --version")
Python 2.7.5
Run Code Online (Sandbox Code Playgroud)
所以问题只是R不使用OSX .bash_profile.我需要弄清楚如何在PATH外面改变.bash_profile,或者让R使用.bash_profile.
还有什么我可以尝试rPython使用2.7.8?
我在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
Run Code Online (Sandbox Code Playgroud)
您可以查看 rPython INSTALL 文件(抱歉,也许我应该让它更明确)。其中有一节介绍了当多个 Python 版本共存时如何使用所需的 Python 版本安装 rPython。它说:
在多个Python版本共存的系统中,用户可以在安装时选择要使用的Python版本。默认情况下,将使用以下给出的 Python 版本安装该包
Run Code Online (Sandbox Code Playgroud)$ python --version但如果正确设置了 RPYTHON_PYTHON_VERSION 环境变量,则可以选择不同的版本。
例如,如果它被定义为
Run Code Online (Sandbox Code Playgroud)RPYTHON_PYTHON_VERSION=3.2它将尝试使用Python 3.2(在路径中查找python3.2和python3.2-config)。如果设置为
Run Code Online (Sandbox Code Playgroud)RPYTHON_PYTHON_VERSION=3它将针对系统中 3.x 分支内的“规范”Python 版本进行安装。