0

我有以下脚本:

  1. 测试.py:

    import sys
    try:
        import random
        print random.random()
    except:
        print sys.exc_info()[0]
    
  2. 运行.sh:

    python "test.py" >> "test_file" ;
    

在我的 linux 服务器上运行以下命令时:

[saray@compute-0-15 ~]$  nohup ./run.sh  &

test_file 包含预期的随机数:

[saray@compute-0-15 ~]$  cat test_file
0.923051769631 

但是,当远程运行相同的命令时,使用:

[saray@blob-cs ~]$ ssh "compute-0-15" 'nohup ./run.sh > /dev/null 2>&1 &'

python上传随机包失败!!

[saray@compute-0-15 ~]$ cat test_file
exceptions.SyntaxError

怎么了?

4

1 回答 1

1

您的远程计算机正在运行不同的 Python 版本,即 Python 3。

在 Python 3 中,该print语句已被替换为print function,并且您的代码引发了语法错误。

解决方法是使用 Python 2 远程运行代码,或者使您的代码与 Python 2 和 3 兼容:

from __future__ import print_function
import sys

import random
print(random.random())
于 2013-07-31T10:16:02.900 回答