【问题标题】:PypeR issue "global name 'dump_stdout' is not defined"PypeR 问题“未定义全局名称 'dump_stdout'”
【发布时间】:2014-11-09 16:56:43
【问题描述】:

您好,提前致谢。

我正在尝试使用 PypeR 模块在 Python 中运行一个非常简单的代码,以便在我的 Python 代码中运行 R 脚本:

#Writing Some Python Code to interface with R

from pyper import *
import sys
import os
import pandas
import glob
import subprocess
import numpy

outputs = runR("a <- 3; print(a+5)")

这会导致以下错误:

Traceback (most recent call last):
  File "C:/Users/gavefl1/Documents/GitHub/Git_R_Test/NewRepo_Python_R/Python_R/MasterFile.py", line 14, in <module>
    outputs = runR("a <- 3; print(a+5)")
  File "C:\Python27\lib\site-packages\pyper.py", line 793, in runR
    Robj = R(RCMD=Robj, max_len=max_len, use_numpy=use_numpy, use_pandas=use_pandas, use_dict=use_dict, host=host, user=user, ssh=ssh, dump_stdout=dump_stdout)
NameError: global name 'dump_stdout' is not defined

我已尝试查看实际的 PypeR.py 代码,但据我所知,“dump_stdout”已定义。我的系统规格如下。再次感谢:

Windows 7 64 位 Python 2.7.8 Visual Studio 2008(我读过这是用 Python 运行的最好的 Visual Studio 包) R 3.1.1 PypeR 1.1.2

【问题讨论】:

  • 我实际上遇到了同样的问题。你找到解决办法了吗?

标签: python r python-2.7 pyper


【解决方案1】:

我认为您的示例来自这里:http://www.jstatsoft.org/v35/c02/paper

那篇文章发表于 2010 年,很可能对应于 v1.0 https://pypi.python.org/pypi/PypeR/1.0

您可以按如下方式安装 pyper v.1.0。

pip uninstall pyper
pip install pyper==1.0

话虽如此,您可以通过执行以下操作来获得与当前版本 (1.1.2) 相同的结果:

>>> r = R()
>>> outputs = r.("a <- 3; print(a+5)")
>>> outputs
'try({a <- 3; print(a+5)})\n[1] 8\n'

使用 1.0 版的结果是:

>>> outputs = runR('a <- 3; print(a+5)')
>>> outputs
'try({a <- 3; print(a+5)})\n[1] 8\n'

【讨论】:

    猜你喜欢
    • 2018-01-28
    • 2018-05-04
    • 2015-12-22
    • 2014-04-18
    • 2015-08-08
    • 2011-04-27
    • 2013-09-04
    • 2015-02-26
    • 2016-09-11
    相关资源
    最近更新 更多