我有以下脚本:
test.py:
import sys
try:
import random
print random.random()
except:
print sys.exc_info()[0]
run.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
怎么了?
答案 0 :(得分:1)
您的远程计算机正在运行不同的Python版本,即Python 3。
在Python 3中,print
语句已替换为print
函数,并且您的代码抛出了语法错误。
解决方法是使用Python 2远程运行代码,或使代码与Python 2和3兼容:
from __future__ import print_function
import sys
import random
print(random.random())