Python 2.7 pyinstaller使用google api客户端库的单个exe程序

Python 2.7 pyinstaller使用google api客户端库的单个exe程序,python-2.7,pyinstaller,google-api-python-client,Python 2.7,Pyinstaller,Google Api Python Client,我有一个python程序,我在过去使用pyinstaller成功地将其打包为一个exe。最近,我添加了一些新特性,这些特性利用了GoogleAPI python客户端()。我试图创建一个新版本的新单exe包,但它无法运行 我启用了调试和控制台,最初的问题是它没有获取oauth库。我通过将以下内容添加到我的等级库文件中修复了此问题: hiddenimports=['googleapiclient', 'apiclient'] 当我构建时,我可以看到: 53092 INFO: Hidden imp

我有一个python程序,我在过去使用pyinstaller成功地将其打包为一个exe。最近,我添加了一些新特性,这些特性利用了GoogleAPI python客户端()。我试图创建一个新版本的新单exe包,但它无法运行

我启用了调试和控制台,最初的问题是它没有获取oauth库。我通过将以下内容添加到我的等级库文件中修复了此问题:

hiddenimports=['googleapiclient', 'apiclient']
当我构建时,我可以看到:

53092 INFO: Hidden import 'googleapiclient' has been found otherwise
53093 INFO: Hidden import 'apiclient' has been found otherwise
但是,现在当我运行重建的exe时,在它退出之前会出现以下错误:

pkg_resources.DistributionNotFound: google-api-python-client
我看不到任何关于它的引用,我也不知道如何强制它与exe打包

我想我不可能是唯一一个想打包一个利用谷歌api的python程序的人,但是在我和我的朋友谷歌的很多时间里,我都没有找到任何帮助


有什么提示吗?

在我从使用pip切换到easy_install安装google api python客户端软件包之后,我能够更深入地研究这个问题。手动安装egg文件为我提供了一种更简洁的测试方法

然后,我开始使用pyinstaller构建,而不使用--onefile选项,这样我就可以开始处理打包在程序中的egg文件。最终我发现我的问题源于我使用熊猫和谷歌API的事实

为了解决这个问题,我不得不更新我的熊猫版本


我确实发现,如果我使用最新版本的Pandas(1.6.0),我会遇到一个新问题,因为它导入了dateutil,并导致查找zoneinfo文件时出现问题。我已经登陆了熊猫1.5.1,一切正常。

很多人都有同样的问题,但我找不到任何答案

这样试试

  • 查找项目的站点包
  • 输入Pyinstaller/hooks并找到hokk-google.api_core.py
  • 添加行(编辑行)数据+=copy_元数据('google-api-python-client'))
  • 范例

    从PyInstaller.utils.hooks导入副本\u元数据
    数据=复制元数据('google-api-core')
    datas+=复制元数据('google-api-python-client')

  • Execute pyinstaller隐藏导入google api python客户端
  • pyinstaller——隐藏导入google api python客户端

  • 你可以避免错误 pkg_resources.DistributionNotFound:google api python客户端

  • 您还可以使用以下方法添加网站包:


    --添加数据“路径到您的包:包名称(例如GoogleapClient)”

    我在我的原始帖子中犯了一个错误。我通过添加
    hiddenimports=['oauth2client']
    修复了oauth问题,在尝试修复NotFound:google api python客户端问题时,我尝试了
    hiddenimports=['GoogleAppClient','apiclient','oauth2client']
    这应该是选择的答案!它至少解决了我的问题:)