У меня есть следующая функция, которая используется внутри приложения Tkinter GUI для запуска различных других сценариев (каждый со своим графическим интерфейсом и функциями) в качестве подпроцессов.
def run_external_script(script_center_root, script_name, *args):
script_center_root.withdraw()
script_center_root.protocol("WM_DELETE_WINDOW", lambda: None) # Disable close button
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
script_path = os.path.join(base_path, script_name)
try:
print("process started")
process = subprocess.Popen([python_executable, script_path, *args], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE )
#process.wait()
print("process stopped")
except subprocess.CalledProcessError as e:
print(f"Error: Subprocess for '{script_name}' failed with exit code {e.returncode}")
print(f"Standard Output:\n{e.stdout}")
print(f"Error Output:\n{e.stderr}")
messagebox.showerror("Error", f"Could not run script: {script_name}\n{e.stderr}")
finally:
script_center_root.protocol("WM_DELETE_WINDOW", lambda: close_window(script_center_root)) # Re-enable close button
reopen_main_window(script_center_root)
Когда я запускаю его непосредственно из PyCharm, он работает отлично.
Когда я создаю exe-файл с помощью PyInstaller, он не открывает сценарии.
Это .spec файл
У меня есть следующая функция, которая используется внутри приложения Tkinter GUI для запуска различных других сценариев (каждый со своим графическим интерфейсом и функциями) в качестве подпроцессов. [code]def run_external_script(script_center_root, script_name, *args):
script_center_root.withdraw() script_center_root.protocol("WM_DELETE_WINDOW", lambda: None) # Disable close button
except subprocess.CalledProcessError as e: print(f"Error: Subprocess for '{script_name}' failed with exit code {e.returncode}") print(f"Standard Output:\n{e.stdout}") print(f"Error Output:\n{e.stderr}") messagebox.showerror("Error", f"Could not run script: {script_name}\n{e.stderr}") finally: script_center_root.protocol("WM_DELETE_WINDOW", lambda: close_window(script_center_root)) # Re-enable close button reopen_main_window(script_center_root) [/code] Когда я запускаю его непосредственно из PyCharm, он работает отлично. Когда я создаю exe-файл с помощью PyInstaller, он не открывает сценарии. Это .spec файл [code]a = Analysis( ['main.py'], pathex=['.'], binaries=[], datas=[ ('XML_to_xlsx.py', '.'), ('xlsx_to_PIES.py', '.'), ('xlsx_to_ACES.py', '.'), ('aces_xlsx_expand.py', '.'), ('aces_xlsx_rollup.py', '.'), ('transpose_xlsx.py', '.') ], hiddenimports=['openpyxl','pandas', 'lxml'], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], noarchive=False, optimize=0, ) pyz = PYZ(a.pure)
exe = EXE( pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='main', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, console=True, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, ) coll = COLLECT( exe, a.scripts, a.binaries, a.datas, strip=False, upx=True, upx_exclude=[], name='main', ) [/code] Мне нужны подсказки или помощь, чтобы все заработало. Я пытался отладить его, но консоль не выдает ошибок
Я работаю над приложением Flask, которое использует библиотеку распознавания речи Vosk для расшифровки звука в текст, а затем отправляет этот текст в скрипт recasepunc.py для восстановления пунктуации. Проблема, с которой я столкнулся, заключается в...
Я работаю над приложением Flask, которое использует библиотеку распознавания речи Vosk для расшифровки звука в текст, а затем отправляет этот текст в скрипт recasepunc.py для восстановления пунктуации. Проблема, с которой я столкнулся, заключается в...
Я пытаюсь открыть PDF-файл с помощью приложения по умолчанию на MacOS, то есть предварительного просмотра, с помощью
import subprocess
doc = subprocess.Popen( )
и закройте его.
Я пробовал решения, описанные в разделе «Как завершить подпроцесс...
Я пытаюсь открыть PDF-файл с помощью приложения по умолчанию на MacOS, то есть предварительного просмотра, с помощью
import subprocess
doc = subprocess.Popen( )
и закройте его.
Я пробовал решения, описанные в разделе «Как завершить подпроцесс...
Я пытаюсь открыть PDF-файл с помощью приложения по умолчанию на MacOS, то есть предварительного просмотра, с помощью
import subprocess
doc = subprocess.Popen( )
и закройте его.
Я пробовал решения, описанные в разделе «Как завершить подпроцесс...