J'ai dû convertir un programme qui utilise Google Speech to Text en .exe, mais j'en étais accro, alors j'ai pris une note.
OS Windows10 (Chez pipenv) Python 3.7.4 pyinstaller 3.6
*** Convertissez test.py en .exe. En supposant ***
pyinstaller test.py --onefile
ERROR1 Tout d'abord, lorsque je l'exécute normalement, j'obtiens l'erreur suivante
pkg_resources.DistributionNotFound: The 'google-cloud-core' distribution was not found and is required by the application
Cette erreur peut être résolue en utilisant l'option --additional-hooks-dir
au démarrage, en créant un fichier comme celui ci-dessous et en donnant le chemin d'accès au dossier. Je vois souvent des articles comme celui-ci, mais *** je n'ai pas pu le résoudre dans mon environnement. *** ***
hook-google.cloud.py
from PyInstaller.utils.hooks import copy_metadata
try: datas = copy_metadata('google-cloud-core')
except: datas = copy_metadata('google-cloud-speech')
↓ j'obtiens cette erreur
assert self.hook_module_name not in HOOKS_MODULE_NAMES
AssertionError
Ce problème était généralement résolu en réinstallant google-cloud-core. .. ..
pip install google-cloud-core
ERROR2 Après avoir installé google-cloud-core, il peut être exécuté et .exe est également généré, mais lorsque le .exe généré est exécuté, l'erreur suivante (ou exception?) Apparaît cette fois.
Exception ignored in: 'grpc._cython.cygrpc.ssl_roots_override_callback'
E0603 18:31:14.600000000 16632 src/core/lib/security/security_connector/ssl_utils.cc:482] assertion failed: pem_root_certs != nullptr
Cela semble concerner l'authentification des licences. Ici, si vous créez un dossier appelé hooks dans la même hiérarchie que test.py et que vous y créez et installez les fichiers suivants,
hook-grpc.py
from PyInstaller.utils.hooks import collect_data_files
datas = collect_data_files('grpc')
Si vous le reconstruisez avec la commande suivante, il n'apparaîtra pas
pyinstaller test.py --onefile --additional-hooks-dir=./hooks/
https://github.com/pyinstaller/pyinstaller/issues/3935 https://teratail.com/questions/201443 https://teratail.com/questions/118297 https://qiita.com/akitooo/items/eb82a5f335d8ca9c9faf https://stackoverflow.com/questions/54634035/my-pyinstaller-is-giving-assertion-error-when-i-execute-it https://stackoverflow.com/questions/40076795/pyinstaller-file-fails-to-execute-script-distributionnotfound https://www.bountysource.com/issues/86848733-pyinstaller-3-6-assertionerror https://github.com/googleapis/google-cloud-python/issues/5774
Recommended Posts