我正在尝试用tkinter制作一个小的GUI程序。我需要使用Python的
subprocess.call()
当我在类方法中尝试这样做时,我得到以下错误:
self.return_code = self.subprocess.call("echo Hello World", shell=True)
AttributeError: 'App' object has no attribute 'subprocess'
以下是我的计划的一部分:
from tkinter import *
from subprocess import call
class App:
def __init__(self, mainframe):
self.mainframe = ttk.Frame(root, padding="10 10 12 12", relief=GROOVE)
self.mainframe.grid(column=0, row=1, sticky=(N, W, E, S))
self.proceedButton = ttk.Button(self.mainframe, text="Proceed", command=self.proceed)
self.proceedButton.grid(column=0, row=9, sticky=(W))
def proceed(self):
self.proceedButton.config(state=DISABLED)
self.return_code = self.subprocess.call("echo Hello World", shell=True)
proceed函数内的最后一行会抛出错误。
我正在学习Python。任何指导都将不胜感激。
答案 0 :(得分:3)
尝试使用subprocess.call
代替self.subprocess.call
:
import subprocess
self.return_code = subprocess.call("echo Hello World", shell=True)
self
是App
的一个实例。 subprocess
是一个模块。要了解self.subprocess
错误的原因,请阅读Classes上的Python教程中的“Random Remarks”。然后阅读有关模块的内容,以及how to call a module's functions。