我正在为流行的linux版本创建一个强化工具(RHEL, opensuse、ubuntu等)我目前正在opensuse中测试我的代码 使用zypper包管理器的环境。你知道吗
我有一段代码:
message = subprocess.Popen(["/usr/bin/zypper","-n","install","vlock"],
stdout=subprocess.PIPE,shell = False)
details = message.stdout.readlines()
print message.poll()
这将安装包,在本例中是vlock,然后读入 从shell输出,然后打印成功值 可以是0或非零数字。当我在python中运行此代码时 我可以打印消息.poll()或echo$?如果我跑了 命令在解释器之外,我得到一个0表示成功或a 按预期失败时为非零。你知道吗
但是,当我实际从shell运行完整的单元测试脚本时:
sudo ./pkghelper.py
我打印出消息.poll()应该保存 从完成的进程返回的值与打印的值相同 消息.poll()或echo$?但是,它的值不是 整数为0或非零,我得到的值为零。有人知道为什么吗 python解释器中的值是一个整数,当 运行脚本是没有的?!?!这实际上是一个主要的障碍 继续开发的程序和我能找到的 网上有什么吗
当进程运行时,该值为
None
,如果退出时没有错误,则为0。由于您正在解释器中调用它,因此进程已经完成并退出,返回代码为0。但是,当您将其作为脚本运行时,python的运行速度会一直快于调用完成的速度(而且它不会等待调用),因此它会得到一个None,表示进程仍在运行。文档解释了这一点。你知道吗相关问题 更多 >
编程相关推荐