我使用wxpython
作为GUI,bash用于脚本。我必须使用子进程从Python脚本运行一个.exe
文件。在
目的:必须将参数从GUI传递到.exe
文件,并且没有检查它的权限。在
我遇到问题的部分代码是:
import subprocess
def OnBound(self,event):
lan1 = self.sc1.Getvalue() ##interger value
arg = ('home/proj/lic.exe')
subprocess.call([lan1, arg], shell = True)
每当我运行脚本时,都会出现以下错误:
^{pr2}$我可能做错了什么?任何帮助/建议都会很有帮助,因为我是python新手。在
我认为错误很明显:“execv()arg 2必须只包含字符串”,而您传递的是一个整数作为第一个参数。 可以使用
str()
将整数转换为字符串{1要被调用的字符串}将被调用的第1个字符串}被传递。 因此,如果您想用参数
123
(或lan1
的任何值)调用home/proj/lic.exe
,那么应该切换顺序。在subprocess.call
的第一个参数中的所有项都必须是字符串:此外,您不应该从GUI事件处理程序调用可能长时间阻塞的函数;它会使GUI冻结很长时间。您可以调用
subprocess.Popen
立即返回,并安排一个空闲回调来定期轮询子进程状态。在我不知道你想完成什么,但是我可以用
或者
^{pr2}$在这两种情况下,我都将垃圾作为列表值之一传递(第一种情况是整数,第二种情况是元组)。在
代码中的注释告诉您
lan1
是一个整数,所以您尝试运行类似这没道理。在
同样,使用
subprocess
更简单:相关问题 更多 >
编程相关推荐