Python R CMD BATCH script.R,通过fabric run()执行永远不会退出

Python R CMD BATCH script.R,通过fabric run()执行永远不会退出,python,r,fabric,Python,R,Fabric,我已经用boto编写了一个fabric脚本,用于在AWS实例上安装R应用程序。软呢帽23 所有使用run&sudo函数的命令都按预期运行 除此之外: @parallel def install_DvD(): # with settings(hide('warnings', 'running', 'stdout', 'stderr'), warn_only=True): cmd0 = 'R CMD BATCH %s/DvDdependencies.R' % (

我已经用boto编写了一个fabric脚本,用于在AWS实例上安装R应用程序。软呢帽23

所有使用run&sudo函数的命令都按预期运行

除此之外:

@parallel
def install_DvD():
#       with settings(hide('warnings', 'running', 'stdout', 'stderr'), warn_only=True):
             cmd0 = 'R CMD BATCH %s/DvDdependencies.R' % (DvDpackage_location)
             run(cmd0)
正如您所注意到的,我尝试使用“warn_only=true”,但没有任何帮助。安装成功完成,没有错误,我通过登录实例并查看DvDdependencies.Rout文件手动检查。 我认为由于我不知道的原因,R CMD BATCH命令不会将执行返回到fabric

本地系统上结构进程的Ctrl^c回溯输出为:

[ec2-54-172-154-181.compute-1.amazonaws.com] run: R CMD BATCH ~/DvDdependencies.R
[ec2-54-165-109-62.compute-1.amazonaws.com] run: R CMD BATCH ~/DvDdependencies.R


^C
Stopped.
!!! Parallel execution exception under host u'ec2-54-165-109-62.compute-1.amazonaws.com':
!!! Parallel execution exception under host u'ec2-54-172-154-181.compute-1.amazonaws.com':
Process ec2-54-172-154-181.compute-1.amazonaws.com:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
Process ec2-54-165-109-62.compute-1.amazonaws.com:
    self._target(*self._args, **self._kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/tasks.py", line 242, in inner
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    submit(task.run(*args, **kwargs))
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/tasks.py", line 174, in run
    return self.wrapped(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/decorators.py", line 181, in inner
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/tasks.py", line 242, in inner
    return func(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/fabfile.py", line 70, in install_DvD
    run(cmd0)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/network.py", line 649, in host_prompting_wrapper
    submit(task.run(*args, **kwargs))
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/tasks.py", line 174, in run
    return self.wrapped(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/decorators.py", line 181, in inner
    return func(*args, **kwargs)
    return func(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 1056, in run
  File "/home/eyebell/local_bin/healX/DvD-installation/fabfile.py", line 70, in install_DvD
    run(cmd0)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/network.py", line 649, in host_prompting_wrapper
    return func(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 1056, in run
    shell_escape=shell_escape)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 925, in _run_command
    stderr=stderr, timeout=timeout)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 811, in _execute
    time.sleep(ssh.io_sleep)
KeyboardInterrupt
    shell_escape=shell_escape)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 925, in _run_command
    stderr=stderr, timeout=timeout)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 811, in _execute
    time.sleep(ssh.io_sleep)
KeyboardInterrupt
完整的脚本在我的, (我要安装的脚本)的位置


任何正确方向的评论、帮助或指点都将不胜感激。

我将结束此讨论,因为问题仅限于此脚本。 此外,DvD工具的安装方法也已更新,
因此,这不再令人感兴趣。

因此,当您手动运行
R CMD BATCH/DvDdependencies.R
时,您会得到提示返回,但通过fabric您不会得到提示。。。有趣的是,手动测试了该命令,它可以工作并退出。除此之外,我还有$R CMD INSTALL package.tar.gz命令,它们也可以正常工作。