Дистрибутив gcloud не был найден и требуется приложением - python pyinstaller - PullRequest
4 голосов
/ 02 июля 2019

У меня есть база данных, и там хранятся данные. Я получаю к нему доступ через модуль firebase в python

Вот код:

from firebase import firebase
firebase = firebase.FirebaseApplication(
    'link to my project in firebase', None)

result = firebase.get('/', None)
print(result)

мой о / п:

{'name':'steven}

Он прекрасно работает и так прост в использовании. Но когда я преобразовал его в приложение с помощью pyinstaller, он показывает следующую ошибку ниже.

Traceback (most recent call last):
  File "firebase_connect.py", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "/home/paulsteven/.local/lib/python3.5/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "firebase/__init__.py", line 16, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "/home/paulsteven/.local/lib/python3.5/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "gcloud/__init__.py", line 19, in <module>
  File "pkg_resources/__init__.py", line 481, in get_distribution
  File "pkg_resources/__init__.py", line 357, in get_provider
  File "pkg_resources/__init__.py", line 900, in require
  File "pkg_resources/__init__.py", line 786, in resolve
pkg_resources.DistributionNotFound: The 'gcloud' distribution was not found and is required by the application
[14554] Failed to execute script firebase_connect

Я попытался найти переполнение стека, но они утверждают, что google cloud изменился на gcloud, поэтому измените его в хуках PyInstaller в spec-файле. Но в моей ошибке мой файл pyinstaller уже проверяет наличие gcloud и показывает, что gcloud не найден. Как заставить это работать.

1 Ответ

1 голос
/ 03 июля 2019

Найден ответ. Это проблема с именами

В Ubuntu:

cd /home/paulsteven/.local/lib/python3.5/site-packages/PyInstaller/hooks/
vim hook-gcloud.py

Измените содержимое на следующее:

from PyInstaller.utils.hooks import copy_metadata

datas = copy_metadata('gcloud')

Теперь создайтеисполняемый файл, он будет отлично работать ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...