Python 2.7 pyinstaller使用google api客户端库的单个exe程序
我有一个python程序,我在过去使用pyinstaller成功地将其打包为一个exe。最近,我添加了一些新特性,这些特性利用了GoogleAPI python客户端()。我试图创建一个新版本的新单exe包,但它无法运行 我启用了调试和控制台,最初的问题是它没有获取oauth库。我通过将以下内容添加到我的等级库文件中修复了此问题: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
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.utils.hooks导入副本\u元数据
数据=复制元数据('google-api-core')
datas+=复制元数据('google-api-python-client')
您还可以使用以下方法添加网站包:
--添加数据“路径到您的包:包名称(例如GoogleapClient)”我在我的原始帖子中犯了一个错误。我通过添加
hiddenimports=['oauth2client']
修复了oauth问题,在尝试修复NotFound:google api python客户端问题时,我尝试了hiddenimports=['GoogleAppClient','apiclient','oauth2client']
这应该是选择的答案!它至少解决了我的问题:)