2015-04-08 3 views
0

У меня есть программа python, которую я успешно упаковал как один exe с помощью pyinstaller в прошлом. Недавно я добавил новые функции, которые используют клиент google api python (https://developers.google.com/api-client-library/python/). Я попытался создать новый пакет exe новой версии, и он не запускается.pyinstaller single exe программы, которая использует google api client lib

Включить отладку и консоль, и изначально проблема заключалась в том, что она не забрала oauth lib. Я установил, что, добавив следующую строку в моей спецификации файла:

hiddenimports=['googleapiclient', 'apiclient'] 

Когда я строю я вижу это:

53092 INFO: Hidden import 'googleapiclient' has been found otherwise 
53093 INFO: Hidden import 'apiclient' has been found otherwise 

Однако теперь, когда я бегу перестроен ехе я получаю следующее сообщение об ошибке перед ним выходы:

pkg_resources.DistributionNotFound: google-api-python-client 

Я не вижу каких-либо ссылок на этот вопрос, и я не знаю, как заставить его быть упакованы с ехе.

Я полагаю, что я не могу быть единственным человеком, который когда-либо хотел упаковать программу python, которая использует google api, но мне не удалось найти какую-либо помощь в течение длительного времени с моим другом google. .

Любые советы?

+0

Я сделал ошибку в своем оригинальном посте. Я исправил проблему oauth, добавив 'hiddenimports = ['oauth2client']' при попытке исправить проблему NotFound: google-api-python-client, которую я пробовал: 'hiddenimports = ['googleapiclient', 'apiclient', 'oauth2client']' – Fuzzy

ответ

0

Мне удалось углубиться в эту проблему после того, как я переключился с использования pip на easy_install для установки пакета google-api-python-client. Ручная установка файла яйца дала мне более аккуратный способ тестирования.

Затем я начал строить с помощью pyinstaller без опции --onefile, таким образом, я смог начать возиться с файлом яйца, который был упакован с моей программой. В конце концов я узнал, что моя проблема связана с тем, что я использую Pandas и API Google.

Here's the relevant Pandas bug on github.

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

Я нашел, что если бы я перешел к самой последней версии Pandas (1.6.0), я столкнулся с новой проблемой, потому что она импортирует dateutil, и это вызывает проблемы с поиском файла zoneinfo. Я приземлился на Pandas 1.5.1, и все работает.

Смежные вопросы