06
Авг
2022

Ошибка в скомпилированном файле Python

Код работает без ошибок в IDE. Но после компиляции и запуска, появляется ошибка:

[ WARN:[email protected]] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('A:\Python\PR\output\progres_bar.png'): can't open/read file: check file path/integrity
Traceback (most recent call last):
  File "bot.py", line 24, in run
  File "v3.py", line 74, in start
    progress_bar = pga.locateOnScreen(progres_bar_img, confidence=0.6, region=(right_down_screen_size))
  File "pyautogui\__init__.py", line 175, in wrapper
  File "pyautogui\__init__.py", line 213, in locateOnScreen
  File "pyscreeze\__init__.py", line 373, in locateOnScreen
  File "pyscreeze\__init__.py", line 353, in locate
  File "pyscreeze\__init__.py", line 207, in _locateAll_opencv
  File "pyscreeze\__init__.py", line 170, in _load_cv2
OSError: Failed to read A:\Python\PR\output\progres_bar.png because file is missing, has improper permissions, or is an unsupported or invalid format

Компилирую через auto-py-to-exe. Команда для компиляцию выглядит так:

pyinstaller --noconfirm --onefile --console --add-data "A:/Python/PR/progres_bar.png;." --add-data "A:/Python/PR/ui.py;." --add-data "A:/Python/PR/v3.py;."  "A:/Python/PR/main.py"

В коде путь к файлу прописан вот так:

def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

progres_bar_img = resource_path("progres_bar.png")

Источник: https://ru.stackoverflow.com/questions/1436756/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%B2-%D1%81%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC-%D1%84%D0%B0%D0%B9%D0%BB%D0%B5-python

Тебе может это понравится...

Добавить комментарий