Вызов python script при нажатии кнопки с использованием python и tkinter

У меня есть python script, у которого есть функция отправки электронной почты пользователю. Я выполнил этот script, и он работает нормально. В другом python script у меня есть только кнопка, поэтому, когда я нажимаю на эту кнопку, мне нужен другой python script, который отправляет письмо для запуска. Я написал следующий код:

#!/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()

Я получаю следующую ошибку, когда я нажимаю кнопку:

sh: 1: SendEmail.py: не найден.

Не могли бы вы сообщить мне, в чем причина этой ошибки и как ее можно решить. Спасибо.

Ответ 1

Мне удалось выяснить способ вызова другого python script при нажатии кнопки:

вместо использования os.system('SendEmail.py') нам нужно использовать os.system('python SendEmail.py')

Ответ 2

Если ваш SendEmail.py находится в том же месте, используйте os.system('SendEmail.py'). Если он находится в другом месте, используйте os.system('python SendEmail.py').

Ответ 3

import sys
import os
from tkinter import *

window=Tk()

window.title("Running Python Script")
window.geometry('550x200')

def run():
    os.system('opencv_video.py')

btn = Button(window, text="Click Me", bg="black", fg="white",command=run)
btn.grid(column=0, row=0)

window.mainloop()

Ответ 4

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

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

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

используйте ключевое слово "python" для запуска команды

Ответ 5

#!/usr/bin/python
import sys
import os
import tkinter as tk

root = tk.Tk()

def helloCallBack():
    os.system('call.py')
    #Keep_both_files_in_the_same_Folder
    b1=tk.Button(root, text="Calendar",bg="white",command=helloCallBack)
    b1.pack()
    root.mainloop()