#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/