Pyisntaller Нет Такого Файла Или Каталога

#python #pygame #pyinstaller #exe #assets

Вопрос:

Я создал сценарий с pygame, и для него требуется один файл, который представляет собой шрифт с именем «blocky.ttf» в папке «активы». Я указал относительный путь внутри моего скрипта python. Проблема возникает, когда я использую pyinstaller для преобразования его в exe. Когда я открываю exe-файл, он показывает ошибку, что этот файл шрифта не существует во временной папке, что-то вроде «MEI», а затем некоторые цифры.

Я использую это, чтобы получить путь к шрифту:

 try:
    base_path = sys._MEIPASS
except Exception:
    base_path = os.path.abspath(".")

font_path = os.path.join(base_path, 'assets\blocky.ttf')
 

Я попытался скопировать папку «Ресурсы» в папку «dist». Никаких хороших новостей.
Я также пробовал различные решения из StackOverflow, но ничего не получалось.

Это команда, которую я использую для преобразования в exe:

 pyinstaller --onefile -w 'main.py'
 

Python: 3.9.6

Pyinstaller: 4.4

ОС: Windows 10

Комментарии:

1. Вам необходимо явно указать pyinstaller, какие файлы следует заблокировать и где их найти, см. Документы о добавлении данных с помощью параметров --add-data --add-binary командной строки или. Или используйте .spec файл.

Ответ №1:

Автоматическое преобразование py в exe решило мою проблему. Это графический интерфейс, который генерирует команду pyinstaller на основе выбранных вами параметров и запускает ее. Никакой головной боли от КЛИ. Выбор необходимых файлов и папок действительно прост. Просто просмотрите и выберите.

Вот ссылка: https://pypi.org/project/auto-py-to-exe/