【发布时间】:2019-09-05 18:34:06
【问题描述】:
我使用以下结构在包中创建了一个 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
必须如何安排设置才能正常工作?
【问题讨论】:
-
最简单的方法:只需将 python_pkg 复制到您的应用程序中(符号链接可能有效)。更复杂的方法:为 python_pkg 创建一个 setup.py 并将文件路径传递给 p4a 要求,就像 pip 一样,如果 pip 支持的话。
-
@inclement 这行得通。我根据您的建议创建了一个答案