错误:尝试猜测R的主页但是没有命令(R)在数据库的路径中

时间:2016-01-06 11:47:01

标签: python rpy2

我正在使用R 2.7.2和python 2.6.6并在centos 6.7上下载了rpy2-2.7.6。我试图用多种方式在centos上安装ryp2。

  1. python setup.py build --r-home=/usr/lib64/R/lib install
  2. pip install ryp2
  3. 遇到常见错误:

    Error: Tried to guess R's HOME but no command (R) in the PATH " . 
    

    除此之外,我还添加了PATH以及.bashrc中具有R_home和R bin路径的LD_LIBRARY_PATH。

    仍然得到同样的错误。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

以下工作在RHEL6上,它仍在运行Python 2.6。为了让rpy2安装脚本找到R,我们需要将Python 2.7中的一些代码复制到rpy2的安装文件中。
 运行后

import subprocess

if "check_output" not in dir( subprocess ): # duck punch it in!
    def f(*popenargs, **kwargs):
        if 'stdout' in kwargs:
            raise ValueError('stdout argument not allowed, it will be overridden.')
        process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
        output, unused_err = process.communicate()
        retcode = process.poll()
        if retcode:
            cmd = kwargs.get("args")
            if cmd is None:
                cmd = popenargs[0]
            raise subprocess.CalledProcessError(retcode, cmd)
        return output
    subprocess.check_output = f

如你所描述的那样失败,输出告诉我们在哪里寻找下载的代码(例如/ tmp / pip-build-meuser / rpy2 /)

访问该文件夹并编辑setup.py 在第一个“def”行之前添加以下代码:

pip install --upgrade -v --user rpy2

保存文件。现在再次尝试你的pip安装线;它应该工作。

供参考,该来源来自https://hg.python.org/cpython/file/d37f963394aa/Lib/subprocess.py#l544 解决方案来自一个类似的问题,subprocess.check_output() doesn't seem to exist (Python 2.6.5)

如果您恰好在没有root访问权限的服务器上运行,则可能使用安装命令

$(function () {
/**
 * Load new data depending on the selected min and max
 */
function afterSetExtremes(e) {

    var chart = $('#container').highcharts();

    chart.showLoading('Loading data from server...');
    $.getJSON('https://www.highcharts.com/samples/data/from-sql.php?start=' + Math.round(e.min) +
            '&end=' + Math.round(e.max) + '&callback=?', function (data) {

        chart.series[0].setData(data);
        chart.hideLoading();
    });
}

// See source code from the JSONP handler at https://github.com/highcharts/highcharts/blob/master/samples/data/from-sql.php
$.getJSON('https://www.highcharts.com/samples/data/from-sql.php?callback=?', function (data) {

    // Add a null value for the end date
    data = [].concat(data, [[Date.UTC(2011, 9, 14, 19, 59), null, null, null, null]]);

    // create the chart
    $('#container').highcharts('StockChart', {
        chart : {
            type: 'candlestick',
            zoomType: 'x'
        },

        navigator : {
            adaptToUpdatedData: false,
            series : {
                data : data
            }
        },

        scrollbar: {
            liveRedraw: false
        },

        title: {
            text: 'AAPL history by the minute from 1998 to 2011'
        },

        subtitle: {
            text: 'Displaying 1.7 million data points in Highcharts Stock by async server loading'
        },

        rangeSelector : {
            buttons: [{
                type: 'hour',
                count: 1,
                text: '1h'
            }, {
                type: 'day',
                count: 1,
                text: '1d'
            }, {
                type: 'month',
                count: 1,
                text: '1m'
            }, {
                type: 'year',
                count: 1,
                text: '1y'
            }, {
                type: 'all',
                text: 'All'
            }],
            inputEnabled: false, // it supports only days
            selected : 4 // all
        },

        xAxis : {
            events : {
                afterSetExtremes : afterSetExtremes
            },
            minRange: 3600 * 1000 // one hour
        },

        yAxis: {
            floor: 0
        },

        series : [{
            data : data,
            dataGrouping: {
                enabled: false
            }
        }]
    });
});

将最新的rpy2安装到您的本地(用户)帐户。其他一切都是一样的。

答案 1 :(得分:0)

为什么在安装软件包时使用pip,如下所示:

sudo apt-get update

sudo apt-get install python-rpy2