Ошибка операции ввода-вывода Pandas из Windows EXE. Нет ошибок при запуске скрипта Python непосредственно из CLIPython

Программы на Python
Anonymous
Ошибка операции ввода-вывода Pandas из Windows EXE. Нет ошибок при запуске скрипта Python непосредственно из CLI

Сообщение Anonymous »

Программа tkinter с графическим интерфейсом отлично работает с операциями ввода-вывода файлов при запуске из CLI с помощью python script.pyw. Но когда этот код преобразуется в exe-файл Windows с помощью pyinstaller, происходит сбой при выполнении операции df.to_csv.
Эта программа считывает CSV-файл после некоторых вычислений. Исключение случается, когда программа пытается записать фрейм данных со всеми только что выполненными вычислениями на диск. В частности, ошибка гласит:
Unhandled exception in script
Traceback (most recent call last):
File "tkinter\__init__.py", line 1948, in __call__
File "script.pyw", line 2385, in update_current_file
File "script.pyw", line 1390, in calcs
ValueError: I/O operation on closed file.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "script.pyw", line 3085, in
File "tkinter\__init__.py", line 1485, in mainloop
File "tkinter\__init__.py", line 1952, in __call__
File "tkinter\__init__.py", line 1668, in _report_exception
File "tkinter\__init__.py", line 2402, in report_callback_exception
ValueError: I/O operation on closed file.

Настройка
Создала новую среду для проекта с помощью conda. Пакеты, запрошенные при создании среды:
  • python
  • pyinstaller
  • matplotlib
  • pypdf2
  • numpy
conda установила все вышеперечисленное и все зависимости, которые он определил.
Работа
В приглашении Anaconda
  • активировать среду
  • Запустить скрипт Python и функции графического интерфейса с помощью Python script.pyw
  • После успешного запуска в CLI , вызовите pyinstaller script.spec
Содержимое script.spec:
# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(['script.pyw'],
pathex=[],
binaries=[],
datas=[('subprocess_perl_script.plx', '.'), ('icon_file.ico', '.')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
splash = Splash('splash_image.png',
binaries=a.binaries,
datas=a.datas,
text_pos=None,
text_size=12,
minify_script=True)

exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
splash,
splash.binaries,
[],
name='script',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None , icon='icon_file.ico')


Подробнее здесь: https://stackoverflow.com/questions/779 ... ript-direc

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