#python #tkinter #console
#python #tkinter #консоль
Вопрос:
Я не очень разбираюсь в python и начинаю создавать приложение с помощью Tkinter. Как будто это оконный проект, с помощью которого я его открываю pythonw.exe но он вызывает консольный скрипт, и я не могу отобразить консоль второго скрипта, если первый скрыт… Существует фрагмент кода, который вызывает второй скрипт :
from selenium_script import main
self.btn_downloadAnime = tk.Button(self.frm_addAnime, text='Lunch download script with voiranime.com links',
bg=self.colorBTN, font=22, activebackground=self.colorBG, height=2, width=50,
command=main)
Комментарии:
1. Я не знаю, возможно ли это, но вы пробовали создать новый процесс и запустить там другой скрипт python?
Ответ №1:
Это то, что вы ищете:
main.py
:
import tkinter as tk
import subprocess
import sys
COMMAND = "start python selenium_script.py"
def start_new_proc():
proc = subprocess.Popen(COMMAND, close_fds=False, shell=True)
root = tk.Tk()
button = tk.Button(root, command=start_new_proc, text="Start new process")
button.pack()
root.mainloop()
selenium_script.py
:
user_input = input(">>> ")
print("You typed this: " str(user_input))
input("Press enter to exit.")
Я запускаю новый процесс с помощью subprocess.Popen
. Новый процесс запускается со своей собственной оболочки (из "start"
-за COMMAND
переменной in)
Ответ №2:
Да, мне не хватало понятия процесса… Предыдущее решение работает, и я тоже его нашел :
def open_selenium(self):
subprocess.Popen(args=['python', 'selenium2.py'], stdout=sys.stdout)