【问题标题】:How to install tinydb in App directory如何在 App 目录下安装 tinydb
【发布时间】:2016-04-28 22:34:42
【问题描述】:

我正在使用 python 和 kivy 创建一个应用程序,使用 from tinydb import TinyD, Query 导入 tinydb 模块。这在测试我的 python 和 kivy 代码时工作得很好。使用buildozer创建apk并调试后,说是因为ImportError: no module named tinydb而崩溃。我尝试在buildozer.spec 中添加tinydb 作为要求,但这并没有解决它。我相当确定我需要在我的 App 目录中安装 tinydb,这样就可以下载包并将其包含在我的 APK 中。但是,我不太确定如何执行此操作。例如,我使用garden install --app graph 从 kivy garden 安装了图形模块。如果有人有任何建议,那就太好了!

【问题讨论】:

    标签: python installation kivy buildozer tinydb


    【解决方案1】:

    我从未使用过 buildover,但由于 tinydb 是一个小型纯 Python 库,您可能可以直接下载 tinydb 库并将其包含在您的项目中,然后在本地导入。

    我使用了以下目录结构

    │   app.py
    ├───db
    │       db.json
    └───tinydb
        │   database.py
        │   middlewares.py
        │   operations.py
        │   queries.py
        │   storages.py
        │   utils.py
        │   __init__.py
    

    还有主脚本 app.py

    from tinydb import TinyDB, Query
    import os
    
    dirname = os.path.dirname(os.path.abspath(__file__))
    db = TinyDB(os.path.join(dirname, 'db', 'db.json'))
    

    【讨论】:

    • 好吧,我还是有点困惑。如何找到 tinydb 的目录名称?或者更确切地说是路径?
    • 通过将整个 tinydb 目录放入我的项目文件夹中,我可以毫无问题地从 app.py 导入它——python 知道在当前目录中查找库。您可以从tinydb pypi page 下载 repo
    • 对,所以基本上我要问的是如何将整个 tinydb 目录放入文件夹中?另外我不完全确定回购在他们的页面上的位置
    • 从绿色下载按钮下载 zip,解压,然后将“tinydb”文件夹复制到您的项目中。这就是我为使我的示例正常工作所做的一切。
    • 如果你把database.json和项目放在同一个目录下,每次在手机上更新你的应用程序都会被删除。为避免这种情况,您必须将数据库存储在 SD 卡上;但我想这是另一个话题。
    猜你喜欢
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多