我正在尝试从 Python 中运行 Perl 脚本,但我在 stdout() 中没有得到任何输出,而当我从 shell 运行它时,我的脚本可以完美运行。
首先,这是我从 shell 执行它的方式(假设我在正确的目录中):
./vmlinkedclone.pl --server 192.168.20.2 --username root --password root
--vmbase_id 2 --vm_destination_id 41 --vmname_destination "clone-41-snapname" --snapname Snapname
#=> True, []
#=> or False, and a description of the error here
#=> or an argument error
这是我尝试从 Python 调用它的方式:
cmd = ['/home/user/workspace/vmlinkedclone.pl', '--server', '192.168.20.2', '--username', 'root', '--password', 'root' ,'--vmbase_id', '2', '--vm_destination_id', '41', '--vmname_destination', 'clone-41-snapname', '--snapname', 'Snapname']
pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
result = pipe.stdout.read()
print "Result : ",result
#=> Result :
为什么当我从 Shell 运行脚本时得到所需的输出,而从 Python 中什么也得不到?