Как запустить консольный скрипт python из скрытого консольного скрипта python?

#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)