Chaquopy软件包/模块的放置位置

时间:2019-05-20 05:06:46

标签: android python chaquopy

我正在尝试在运行计算机视觉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"

我相信我可能将模块放置在错误的位置,但是说明中并未提供有关路径的详细信息,请参见将模块文件放置在何处以及应以何种格式引用。

文件层次结构的图像:

Current python script file hierarchy

Within package1 folder

2 个答案:

答案 0 :(得分:1)

发生问题是因为没有一个

 __init__.py

我的package1文件夹中的文件。

添加此代码后,我收到另一个错误,但是此导入问题已解决。

答案 1 :(得分:0)

您的Python源代码应放在src/main/python中,如the documentation中所述。可以在demo app中看到一个示例。

如果您已经尽力运行顶级脚本,那么我认为脚本必须已经在此文件夹中。在这种情况下,您要做的就是将package1文件夹移入其中。