Python中文
首页
教程
问答
标签
搜索
登录
注册
Python在kvmqemu/remotevi中自动执行用户任务
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在编写一个简单的脚本来自动执行一个重复的任务:启动一个虚拟机,找到它的spice tcp端口,并启动remoteviewer与虚拟机交互。顺序为:</p> <pre><code>virsh -c qemu:///system start test_machine virsh -c qemu:///system domdisplay test_machine </code></pre> <p>其输出如下:spice://127.0.0.1:5903号。第三个命令是:</p> ^{pr2}$ <p>python 7.5.2在RHEI中有:</p> <pre><code>#!/usr/bin/python import subprocess import pipes machine_name = 'test_machine' return_code = subprocess.check_output(['virsh', '-c', 'qemu:///system', 'start', machine_name]) return_code = subprocess.check_output(['virsh', '-c', 'qemu:///system', 'domdisplay', machine_name]) print str(return_code) esc_return_code = pipes.quote(return_code) print "remote-viewer {}".format(return_code) #proc = subprocess.check_output(["remote-viewer {}".format(esc_return_code)]) #, return_code]) </code></pre> <p>我的前两个命令按预期工作——这是带有远程查看器的第三个命令抛出错误。在</p> <p>我尝试了一些不同的方法,以为是特殊字符引起了问题,但现在我看到前两个命令工作正常,我不相信。我还尝试了与前两个命令相同的格式,如下所示:</p> <pre><code>subprocess.check_output(['remote-viewer', return_code]) </code></pre> <p>按原样运行脚本将得到以下输出:</p> <pre><code>spice://127.0.0.1:5903 remote-viewer spice://127.0.0.1:5903 Traceback (most recent call last): File "/mnt/data/Scripts/runvm.py", line 13, in <module> proc = subprocess.check_output(["remote-viewer {}".format(esc_return_code)]) #, return_code]) File "/usr/lib64/python2.7/subprocess.py", line 568, in check_output process = Popen(stdout=PIPE, *popenargs, **kwargs) File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__ errread, errwrite) File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory </code></pre> <p>如果我硬编码这些值(没有变量),它就起作用了。像这样:</p> <pre><code>subprocess.check_output(['remote-viewer spice://127.0.0.1:5903']) </code></pre> <p>我错过了什么?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>可以使用Popen和shell=True来运行命令</p> <pre><code>From subprocess import Popen output='spice://127.0.0.1:5903' Command='remote-viewer'+' '+output #Proc=Popen(Command,shell=True) Proc=Popen(Command) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
3 回答
无法使用Django\u mssql\u后端迁移到外部hos
6 回答
无法使用Django&Python3.4连接到MySql
4 回答
无法使用Django+nginx上载媒体文件
2 回答
无法使用Django1.6导入名称模式
4 回答
无法使用Django1.7和mongodb登录管理站点
1 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
7 回答
无法使用Djangockedi验证CBV中的字段
10 回答
无法使用Djangocketditor上载图像(错误400)
1 回答
无法使用Djangocron进行函数调用
1 回答
无法使用Djangofiler djang上载文件
10 回答
无法使用Djangokronos
4 回答
无法使用Djangomssql provid
7 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
2 回答
无法使用Djangomssq迁移Django数据库
3 回答
无法使用Djangonox创建用户
7 回答
无法使用Djangopyodb从Django查询SQL Server
7 回答
无法使用Djangopython3ldap连接到ldap
3 回答
无法使用Djangoredis连接到redis
5 回答
无法使用Django中的FK创建新表
4 回答