Kivy buildozer Firestore 错误 - ModuleNotFoundError:没有名为“google.cloud”的模块

Posted

技术标签:

【中文标题】Kivy buildozer Firestore 错误 - ModuleNotFoundError:没有名为“google.cloud”的模块【英文标题】:Kivy buildozer Firestore error - ModuleNotFoundError: No module named 'google.cloud' 【发布时间】:2021-02-03 16:41:15 【问题描述】:

我正在使用 buildozer 打包我的 kivy 应用程序。我的应用使用 Google Cloud Firestore 和 Cloud Storage。当我尝试在我的安卓手机上部署它时,我收到错误ModuleNotFoundError: No module named 'google.cloud'。我的 buildozer.spec 文件中有以下要求行:

requirements = python3,kivy,kivymd,requests,google-auth,google-oauthlib,firebase-admin,google-cloud-firestore,cachetools,google-cloud,firebase-client,google-cloud-storage

google-auth 之后,我只是开始添加我可以从以前提出这个问题的人那里找到的任何要求。从这些链接:

KivyMD Buildozer android and firebase-admin

how to correctly implement the google API on a Kivy application compiling with buildozer?

构建器中的错误消息:

File "/home/user/buildozer/appname/.buildozer/android/app/main.py", line 26, in <module. python : ModuleNotFoundError: No module named 'google.cloud'

我认为这个错误与 main.py 文件有关?这些是我在 main.py 文件中的导入:

from kivymd.toast import toast #loads of kivy and kivymd imports but haven't included them all
from google.cloud import firestore
from plyer import filechooser
import os
import pyrebase
import requests
import json
import datetime
import pytz
import threading
from functools import partial
import postcodes_io_api
import pgeocode

from my_firestore import Firestore

【问题讨论】:

开始调查,能否提供更多错误信息? 当然,我已经编辑了上面的内容以添加更多关于 buildozer 回溯的细节。谢谢 您是否遵循文档或教程来执行此操作?能给个链接吗? youtube.com/watch?v=V-uVhlns3hE&t=314s 教程涵盖了一系列错误,但不幸的是它没有使用 Firestore,因此没有具体针对此问题 哦,不,这是我自己的项目,我只是按照上面的教程来部署在 Android 上。我不知道为什么尝试部署时无法识别 google.cloud 模块,我想我已将所有要求添加到 buildozer.spec 文件中 【参考方案1】:

这是一个很好的解决方案: 我发现 google 模块是,或者我可以说像 google.cloud、google.storage 等模块 存储在一个名为 google 的文件中,您可以在您的环境中导航它“env/../../site-packages/google” 所以我做了什么,我进入了 .buildozer 文件夹中的这条路径.buildozer/android/platform/build-armeabi-v7a/build/python-installs/yummycom/googleyummycom 是我的项目名称忽略它 所以我将它与我的环境中的谷歌文件夹进行了比较,我只是复制其中的内容 我粘贴在那里,对我来说效果很好 因为当它进入该目录时,尽管您将它们包含在您的要求中,但它们却丢失了100% WORKED

【讨论】:

感谢您的回复。我找不到您所指的 PATH .buildozer/android/platform/build-armeabi-v7a/build/python-installs/yummycom/google。我在 buildozer 文件夹中看不到名为 android 的文件夹,只有名为“libs”、“scripts”、“targets”和“tools”的文件夹。你知道我应该把 google 文件夹复制到哪里吗? 很抱歉回复晚了希望你做得好,是的,我的意思是在你的 .buildozer 中,它主要是在你的项目中的同一位置找到但被隐藏了,所以你可以取消隐藏它并且“yummycom”它不是一部分你会找到你的路径 啊,我明白了,谢谢。我找到了隐藏的 .buildozer 文件并找到了 PATH .buildozer/android/platform 但是我没有一个名为 build-armeabi-v7a 的文件夹。我有 android-ndk-r19c ,其中有很多文件夹,但我看不到一个名为 python-installs 的文件夹(有一个名为 python-packages 的文件夹)。还有一个文件夹叫android-sdk

以上是关于Kivy buildozer Firestore 错误 - ModuleNotFoundError:没有名为“google.cloud”的模块的主要内容,如果未能解决你的问题,请参考以下文章

python, kivy, geopy, buildozer

Buildozer 错误,CalledProcessError (Kivy)

kivy buildozer 虚拟机

《Buildozer打包实战指南》第二节 安装Kivy和Buildozer

《Buildozer打包实战指南》第二节 安装Kivy和Buildozer

Python、Kivy、Buildozer:使用 python-firebase/requests 时出错