我正在尝试在运行计算机视觉python脚本的Android应用程序中引用两个文件。
按照此处的说明进行操作:https://chaquo.com/chaquopy/doc/current/android.html#resource-files
我在导入文件夹中创建了一个文件夹,其中包含脚本需要引用的两个文件。此文件夹称为“ package1”,与我的应用程序构建gradle文件位于同一级别。
我的gradle文件包括以下内容,如示例所示:
python {
// If Chaquopy fails to find Python on your build machine, enable and edit the
// following line to point to a Python 3.4+ executable.
// buildPython "C:/Python36/python.exe"
extractPackages "package1"
...
}
我的python脚本包含以下内容:
from os.path import dirname, join
import package1
haar_path = open(join(dirname(package1.__file__), "haar.xml"))
model_path = open(join(dirname(package1.__file__), "model.hdf5"))
但是,当我的apk在我的设备上运行时,我收到以下错误:
"No module named package1"
我相信我可能将模块放置在错误的位置,但是说明中并未提供有关路径的详细信息,请参见将模块文件放置在何处以及应以何种格式引用。
文件层次结构的图像:
答案 0 :(得分:1)
发生问题是因为没有一个
__init__.py
我的package1文件夹中的文件。
添加此代码后,我收到另一个错误,但是此导入问题已解决。
答案 1 :(得分:0)
您的Python源代码应放在src/main/python
中,如the documentation中所述。可以在demo app中看到一个示例。
如果您已经尽力运行顶级脚本,那么我认为脚本必须已经在此文件夹中。在这种情况下,您要做的就是将package1
文件夹移入其中。