Используя pyinstaller (точно Auto-py-to-exe), я превратил свое приложение Python в exe-файл. В своем приложении я использовал модуль mediapipe и увидел ошибку:
ImportError: cannot import name 'builder' from 'google.protobuf.internal'
Мое приложение хорошо работало в моей среде pycharm. Я поискал в Интернете и обнаружил, что мне следует понизить версию protobuf==3.19.6, где текущая версия — 4.25.3. Но я также увидел сообщение об ошибке, когда понизил версию,
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
mediapipe 0.10.14 requires protobuf<5,>=4.25.3, but you have protobuf 3.19.6 which is incompatible.
Есть ли способы обойти эту проблему? Или мне следует перезапустить создание exe-файла с другим модулем, без pyinstaller auto-py-to-exe?
*П.С. : Я сделал еще один простой проект mediapipe, который использует mediapipe==0.10.11 и protobuf==3.20.3, и он также работал в среде pycharm и не работал при преобразовании в exe с помощью auto-py-to-exe. Я совершенно уверен, что дело не в версии, а требуется что-то более глубокое.
@JohnnyCheesecutter Спасибо за добрый совет. Однако он установил mediapipe==0.10.11 и начал выдавать ту же ошибку даже в среде pycharm. когда я вернул версию protobuf, в pycharm она работала нормально.






Я выбрал другой путь решения своей проблемы.
Я просто использовал cx_freeze и все прошло хорошо.
Попробуйте установить обе библиотеки вместе в одну строку. Это заставит установить версию mediapipe, которая работает с выбранным пакетом protobuf.
pip install --force-reinstall protobuf==3.19.6 mediapipe