2014-11-10 21 views
8

Tôi có một tập lệnh python có chức năng gửi email cho người dùng. Tôi đã thực thi kịch bản này và nó hoạt động tốt. Trong một kịch bản python Tôi chỉ có một nút, vì vậy khi tôi bấm vào nút này, tôi muốn kịch bản python khác mà sẽ gửi một email được executed.I đã viết đoạn mã sau:gọi một tập lệnh python trên nút bấm bằng cách sử dụng python và tkinter

#!/usr/bin/python 
import sys 
import os 
import Tkinter 
import tkMessageBox 
top=Tkinter.Tk() 

def helloCallBack(): 
    os.system('SendEmail.py') 

B=Tkinter.Button(top,text="hello",command= helloCallBack) 
B.pack() 
top.mainloop() 

tôi nhận được lỗi sau khi tôi nhấp vào nút:

sh: 1: SendEmail.py: không tìm thấy.

Bạn có thể cho tôi biết lý do của lỗi này là gì và cách giải quyết vấn đề này.Cảm ơn.

+0

Nếu bạn đi đến dấu nhắc lệnh và nhập 'SendEmail.py', điều gì sẽ xảy ra? Bạn có gặp lỗi tương tự không? –

+0

không có nó hoạt động fine.I thực hiện các tập tin python cùng một cách riêng biệt và sau đó nó làm việc fine.I sử dụng python SendEmail.py và nó làm việc. – Valla

+0

Bạn có nhận thấy những gì bạn vừa viết không? Bạn nói "Tôi đã sử dụng python SendEmail.py". Đó không phải là những gì tôi hỏi, và đó không phải là những gì bạn đang làm trong kịch bản. Tại dấu nhắc, gõ _literally_ 'SendMail.py' _not_' python SendMail.py'. Tôi nghi ngờ bạn sẽ nhận được cùng một lỗi. Nếu nó không hoạt động từ dòng lệnh, nó sẽ không hoạt động từ 'os.system()'. –

Trả lời

6

tôi đã có thể tìm ra một cách để gọi một kịch bản python trên nút bấm:

thay vì sử dụng os.system ('SendEmail.py') chúng ta cần phải sử dụng os.system ('python SendEmail. py ')

-1

Nếu số SendEmail.py của bạn ở cùng một vị trí, hãy sử dụng os.system('SendEmail.py'). Nếu nó ở một vị trí khác, hãy sử dụng os.system('python SendEmail.py').

Các vấn đề liên quan