r-从命令行设置python版本



我正试图使用Rscript从命令行运行一个R脚本。R脚本调用一些python代码,并且在交互运行时运行良好。然而,当我从Rscript调用它时,gdal会出现一些错误。我相信这些错误与python 3 vs 2有关。例如,在交互式R会话中运行以下命令:

system("python --version)

产生

Python 2.7.9

同时从shell运行"相同"命令:

$ python --version

产生

Python 3.5.1::Continuum Analytics,股份有限公司

如何将$ Rscript "foo.R"调用指向python 2.7.9?

当您从shell命令行调用$ python --version$ Rscript -e 'system("python --version")'时,您在Python虚拟环境中操作,可能是由virtualenv创建的。具体来说,您正在执行/home/foo/miniconda3/bin/python

当您从RStudio运行system("python --version")时,您将获得系统默认版本。具体来说,您正在执行/usr/bin/python

如何将$ Rscript "foo.R"调用指向python 2.7.9?

这取决于您是如何进入虚拟Python环境的。如果它是由virtualenv创建的,只需将其停用即可:

$ deactivate
$ Rscript -e 'system("python --version")'
2.7.9

编辑:您似乎正在使用miniconda创建的虚拟环境。如果是这种情况,您可以通过编辑PATH环境变量来使用系统默认的Python。如何编辑PATH取决于您希望更改生效的时间。

  • 对于只为一个命令而丢失的更改,请尝试以下操作:

    $ PATH="$(echo "$PATH" | sed -e s,:/usr/local/sbin,,)" Rscript -e 'system("python --version")' 
    
  • 要使您的更改持续单个shell会话的持续时间,请尝试以下操作:

    $ PATH="$(echo "$PATH" | sed -e s,:/usr/local/sbin,,)"
    $ python --version
    $ Rscript -e 'system("python --version")' 
    
  • 要永久更改PATH,请适当地编辑文件$HOME/.bashrc。您需要启动一个新的终端会话才能对此产生影响。

解决方案是在我的R脚本中插入对methods库的调用,并使用以下命令创建/加载python 2环境:

$ conda create --name python2 python=2
$ source activate python2

请参阅:
Rscript不加载方法包,R加载——为什么,结果是什么

http://conda.pydata.org/docs/py2or3.html

相关内容

  • 没有找到相关文章

最新更新