Я получаю эту ошибку, когда пытаюсь создать файл.exe через pyinstaller - "ModuleNotFoundError: нет модуля с именем" acrcloud_extr_tool ""

Я использую ACRCloud для распознавания аудиофайла, я создаю графический интерфейс с использованием tkinter и замораживаю код как файл.exe с помощью PyInstaller. Тем не менее, я получаю эту ошибку при запуске файла.exe:

ModuleNotFoundError: No module named 'acrcloud_extr_tool'

Если я запускаю его прямо из скрипта, ошибки нет, и она работает нормально. Некоторая помощь, пожалуйста? Я только начинаю.

2 ответа

Решение

Я решил это. Оказывается, из-за того, что это двоичный файл (с расширением.pyd), его нужно было явно добавить в файл.spec (см. Документацию по pyinstaller). Я сделал это, и это бежало как очарование.

Из моего опыта использования pyinstaller мне нужно добавить параметр в команду build, чтобы pyinstaller знал, где искать модули. Если вы строите из командной строки, строка может выглядеть примерно так:

pyinstaller "yourFileName.py"  

Тем не менее, вы можете добавить к этому другие команды, которые определяют, как создается исполняемый файл - имеет ли он пользовательский значок, является ли он консольным, или консоль скрыта и т. Д. Кроме того, вы можете добавить список путей, сообщающих pyinstaller, где искать для ваших модулей, и это сделано так:

pyinstaller -p C:\theFolderWhereYourCustomModulesAreSaved:C:\Users\yourName\AppData\Local\Programs\Python\Python36-32\Lib\site-packages  "yourFileName.py"

Обратите внимание, что вокруг этих путей к файлам и кавычек нет двоеточия. Путь к вашим пакетам сайта Python может немного отличаться от моего, но я оставил во всех данных о пути, за исключением моего имени пользователя, поэтому отредактируйте его по мере необходимости для вашего собственного компьютера. Кроме того, первый "поддельный" путь, который я показал в этом примере, был бы, если вы написали несколько своих собственных модулей и импортировали их в свой проект. Например, если ваш основной проект сохранен в C:\myProject, но у вас есть написанные вами модули, которые импортируются в вашу программу следующим образом:

import myCustomModule

и эти модули сохраняются в C:\myProject\myModules, тогда вы бы изменили эту команду так:

pyinstaller -p C:\myProject\myModules:C:\Users\yourName\AppData\Local\Programs\Python\Python36-32\Lib\site-packages  "yourFileName.py"

Надеюсь, это решит вашу проблему.

Другие вопросы по тегам