gpt4 book ai didi

python - “google-cloud-firestore”发行版未添加到 PyInstaller 构建中

转载 作者:行者123 更新时间:2023-12-02 08:10:56 28 4
gpt4 key购买 nike

当我尝试为我的 python 脚本构建可执行文件时,它给了我:

pkg_resources.DistributionNotFound: The 'google-cloud-firestore' distribution was not found and is required by the application

我创建了以下钩子(Hook):“hook-google-cloud-firestore.py”和“hook-google.cloud.py”,但它似乎也没有帮助。有什么想法可以解决这个问题吗?

最佳答案

两天了,三步找到了解决办法

首先

hook-google.cloud 中添加此代码。

datas += copy_metadata('google-cloud-firestore')

hook-google.cloud.py 的根..

C:\Users\ASPIREone\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\PyInstaller\hooks

第二

制作

hook-google-cloud-firestore.py

根目录:

C:\Users\ASPIREone\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\PyInstaller\hooks

并添加此代码

from PyInstaller.utils.hooks import copy_metadata, get_package_dir
datas += copy_metadata('google-cloud-firestore')
datas += copy_metadata('google_cloud_firestore') #altlll

hiddenimports += ['google-cloud-firestore_v1']
#pythonhosted.org/pyinstaller/hooks.html#understanding-pyinstaller-hooks
#get_package_dir returns tuple (where pkg stored, abs path to pkg)
pkg_dir = 'C:/Users/ASPIREone/AppData/Local/Programs/Python/Python37-32/Lib/site-packages/google/cloud/firestore_v1'

datas += (pkg_dir, 'google-cloud-firestore')

不要忘记删除主项目中的文件夹 __pycache__ 我的主项目是 C:\Users\ASPIREone\PycharmProjects\amazon\parking-go

第三

删除根目录中的应用程序(例如:main.exe):

C:\Users\ASPIREone\AppData\Local\Programs\Python\Python37-32\Scripts\dist

进入命令行

不要使用pyinstaller.exe --onefile main.py而是使用

pyinstaller.exe --onefile --clean main.py

因为我的主项目在根文件夹中,所以我在命令行中写入:

pyinstaller.exe --onefile --clean C:\Users\ASPIREone\PycharmProjects\amazon\parking-go\main.py

你必须先清理它并重新构建

应该可以用!

.........

如果您的应用在检索数据或写入 Firestore 时运行时出现错误,如下所示:

Exception ignored in: 'grpc._cython.cygrpc.ssl_roots_override_callback'
E0527 07:10:01.571000000 3672 src/core/lib/security/security_connector/ssl_util
s.cc:449] assertion failed: pem_root_certs != nullptr

通过此步骤解决了:

将文件 roots.pm 复制到您的主项目运行应用的位置

roots.pm 的目录是

C:\Users\ASPIREone\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\grpc\_cython\_credentials\roots.pm

制作 hook-grpc.py 并输入此代码

from PyInstaller.utils.hooks import collect_data_files
datas = collect_data_files('grpc')

进入命令行

pyinstaller.exe --onefile --clean yourmainfile.py

应该可以用!

关于python - “google-cloud-firestore”发行版未添加到 PyInstaller 构建中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55848884/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com