Keras и OpenCV (CV2) как зависимости для исполняемого файла Python? - PullRequest
2 голосов
/ 03 апреля 2019

Для школьного задания я написал систему (в Python 3, в Windows 8.1), которая принимает определенную отсканированную форму, распознает цифры, сравнивает ее с ключом ответа и помещает «оценки» в CSV. У меня теперь система работает полностью на основе отдельных файлов (например, у меня есть один файл, который «анализирует» отсканированный документ, одна часть, которая выполняет распознавание, файл, который обучил нейронную сеть, используемую для распознавания и т. Д.), Но мой инструктор требует что я превращаю его в исполняемый файл.

Я недавно узнал о pyinstaller, и я чувствую, что это делает то, что я хочу, но я потерялся из-за того, как зависимости должны работать здесь. Я считаю, что я должен создать «скрипт запуска» в Python, который импортирует отдельные компоненты и вызывает функции с аргументами в указанном порядке. У меня также есть «шаблонное» изображение, которое необходимо сохранить с исполняемым файлом.

В частности, для Keras и CV2 я знаю, что существует очень много зависимостей. Должны ли все эти зависимости присутствовать в каталоге, в который я устанавливаю мою программу, или pyinstaller берет их из каталога pip, в котором они установлены? Для OpenCV, я должен выяснить, как управлять тем, чтобы принести это также в установщик?

Извинения, если это не то место, где можно задать вопрос.

1 Ответ

0 голосов
/ 03 апреля 2019

Pyinstaller использует hooks для каждого пакета, вам необходимо проверить совместимость Pyinstaller с вашими пакетами Keras и OpenCV. Большинство пакетов будут работать "из коробки", и вы можете проверить здесь для сторонних поддерживаемых пакетов. В настоящее время я использую OpenCV v4.0.0 и Pyinstaller v3.4, который работает хорошо. Насколько я понимаю, Pyinstaller берет их из каталога pip, в котором они установлены, поэтому вам не нужно беспокоиться о наличии зависимостей в одном каталоге. Все пакеты, используемые в вашей программе, будут автоматически включены в исполняемый файл Pyinstaller в зависимости от того, какие флаги вы используете для сборки программы.

Вы можете использовать флаг --onefile для одного исполняемого файла в комплекте. Другой полезный флаг - это флаг --windowed, который позволяет отлаживать программу из командной строки. Вы можете найти больше информации о флагах здесь .

...