Python — приложение Tkinter, проблемы при вызове сценариев с подпроцессомPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python — приложение Tkinter, проблемы при вызове сценариев с подпроцессом

Сообщение Anonymous »

У меня есть следующая функция, которая используется внутри приложения 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 файл

Код: Выделить всё

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',
)
Мне нужны подсказки или помощь, чтобы все заработало. Я пытался отладить его, но консоль не выдает ошибок

Подробнее здесь: https://stackoverflow.com/questions/791 ... subprocess
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка при вызове recasepunc.py с подпроцессом в приложении Flask: ошибка в recasepunc: нет
    Anonymous » » в форуме Python
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при вызове recasepunc.py с подпроцессом в приложении Flask: ошибка в recasepunc: нет
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как завершить приложение, открытое подпроцессом Python
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как завершить приложение, открытое подпроцессом Python
    Anonymous » » в форуме Linux
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как завершить приложение, открытое подпроцессом Python
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»