Я установил переносную среду на флешку, состоящую из Chromium Portable, Firefox Portable и Python 3. Я пытаюсь написать скрипт Python 3, который запускает сервер pydoc для доступа либо в Chromium Portable, либо в Firefox. Портативный. Если Chromium Portable уже активен, откроется новая вкладка на сервере, если не будет запущен Firefox Portable, и сервер будет доступен оттуда. Когда все процессы Chromium Portable \ chrome.exe и Firefox Portable были закрыты, сервер должен быть выключен. Следующий код - это то, что я написал до сих пор.
import subprocess
import os
drive = os.environ['HOMEDRIVE']
def launch_browser():
pass
def launch_pydoc():
pythonw = drive + '\PortableApps\PortablePython_3x\App\pythonw.exe'
doc_args = drive + '\PortableApps\PortablePython_3x\App\Lib\pydoc.py -p 50000'
spDoc = subprocess.Popen(pythonw+' '+doc_args)
def launch_chrome():
chrome = drive + '\PortableApps\ChromiumPortable\App\Chrome-bin\chrome.exe'
chrome_args = r'http://localhost:50000/ --user-data-dir="C:\Users\Owner\AppData\Roaming\ChromePortable\nathan" --new-tab'
spChrome = subprocess.Popen(chrome+' '+chrome_args)
def launch_mozilla():
mozilla = drive + '\PortableApps\FirefoxPortableNightly\FirefoxPortable.exe'
mozilla_args = 'http://localhost:50000/'
spMozilla = subprocess.Popen(mozilla+' '+mozilla_args)
Этот скрипт запускается из пакетного файла, в котором значение HOMEDRIVE устанавливается на текущую букву флэш-диска, поэтому Python всегда будет знать, где искать исполняемые файлы. Моя проблема в том, что я не уверен, как реализовать процесс, который определит, нужно ли просто открывать новую вкладку в Chromium Portable или открывать Firefox Portable и, более того, выключать сервер после каждого процесса любого браузера, который был закрыт. Я просмотрел множество ссылок, относящихся к подпроцессам и т. Д., Особенно как ждать несколько дочерних процессов , как убить подпроцесс и , гарантируя, что подпроцессы не работают при выходе из программы Python . Я установил пакеты pywin32, wmi, comtypes и psutil в свою копию Python 3. Помогите, пожалуйста? Если мой код необходимо удалить, это нормально. Я пытаюсь выучить. Заранее спасибо.