Для запаковки всех файлов в один exe необходимо использовать флаг -F.
Все py файлы подхватываются pyinstaller из импортов, поэтому для их включения никаких дополнительных действий не нужно.
Для добавления сторонних файлов используются следующие параметры:
--add-data - для добавления текстовых файлов данных;
--add-binary - для добавления бинарных данных.
Правило добавления: имя-файла;имя_папки
Например, если все дополнительные файлы лежат в папке models:
pyinstaller -F --add-data coco-dataset.labels;models --add-data yolov3-tiny.cfg;models --add-data yolov3-tiny.weights;models pine.py
А в в самом скрипте необходимо задать следующую функцию:
import os
import sys
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
if getattr(sys, 'frozen', False):
base_path = sys._MEIPASS
else:
base_path = os.getcwd()
return os.path.join(base_path, relative_path)
Ну и конечно во всем коде, где происходит открытие данных файлов, надо задавать путь к ним через данную функцию.