python - 如何使用 buildozer 将包导入 Kivy 应用程序
问题描述
我使用以下结构在包中创建了一个 kivy 应用程序:
.
├── bin
│ └── myapp-0.1-debug.apk
├── buildozer.spec
└── kivy_app
├── __init__.py
├── __main__.py
├── main.py
└── source
└── kivy_app.py
我希望使用我编写的另一个包中包含的一些功能:
.
└── python_pkg
├── __init__.py
└── source
└── version.py
模块 version.py 包含:
VERSION = '0.0.1'
当我插入该行时:
from python_pkg import VERSION
进入 kivy_app.py,它在 PC 上的 kivy 中完美运行。
我已将 python_pkg 添加到 buildozer.spec 的需求行中。
我可以构建一个 APK,但该应用程序无法在 Android 上运行。故障点的 logcat 输出为:
ImportError: cannot import name 'VERSION' from 'python_pkg' (/data/user/0/org.test.myapp/files/app/_python_bundle/site-packages/python_pkg/__init__.pyc)
python_pkg 中的_
init_
.py 模块具有以下行:
from python_pkg.source.version import VERSION
必须如何安排设置才能正常工作?
解决方案
感谢@inclement,我有一个解决方案。我创建了一个指向 python_pkg 的符号链接并将其放在 kivy_app 目录中。应用程序的结构现在是
.
├── bin
│ └── myapp-0.1-debug.apk
├── buildozer.spec
└── kivy_app
├── __init__.py
├── __main__.py
├── main.py
├── python_pkg -> /home/jeff/projects/kivy_pkg/python_pkg/python_pkg
└── source
└── kivy_app.py
buildozer.spec 的需求行中不需要元素 python_pkg,我已将其删除。
推荐阅读
- sql - 如何在有或没有加入的情况下更新视图?
- firemonkey - 只读取文本文件的最后一行(C++ Builder)
- android - 如何在Android中实现循环检查/勾选动画?
- vue.js - Vue.js 和 Bootstrap Modal - 调用 JS
- python - 跨整个项目处理 Python 配置文件
- sockets - 发送强制发送 X 字节的 UDP 数据报
- solr - solr 8“msg”:“错误:未知字段‘语言’”
- json - Angular 显示单个 http 响应
- javascript - V8 console.log 不打印
- javascript - 如何动态填充下拉输入框