【问题标题】:Kivy Buildozer Apk - Import Custom ModulesKivy Buildozer Apk - 导入自定义模块
【发布时间】:2017-04-08 05:08:12
【问题描述】:

在 Windows Plat 上,我扩展了 python 路径以包含我的模块文件夹。这工作正常,但一旦 kivy 程序由 Buildozer 编译成 apk,

“导入”命令不再加载我的模块。日志文件读取....

[警告] stderr: ImportError: No module named a_sync

第一个模块上的错误。

是否有一些特殊的方法可以从您在数据库目录中设置的文件夹中导入您自己的模块?

-------更新-------------

我认为我的 apk 不会导入 pyo 文件。我可以看到我将 python 路径扩展到我的模块的位置......但没有导入。

----更新--------- apk 现在运行,但图形不正确。 Kivy Launcher 完美运行应用程序(图形和所有),那么 buildozer 构建可能出现什么问题?

视觉效果有这种看起来很有趣的扭曲。例如,如果 png 图像是圆形的,则运行 kivy apk 会显示相同的图形,如星星或花朵(不再是完全圆形的)。

---更新---- 我更新了 Kivy Launcher,它也有扭曲的图形渲染。

【问题讨论】:

  • 我必须创建一个详细的教程,介绍如何在 Windows 上设置虚拟猜测,一直到使用 buildozer 进行构建,因为有很多你在任何地方都找不到的小细节互联网。我设法让我的应用程序运行......最后......只花了一个多星期。不过还有其他问题……我的图形都搞砸了。 Kivy Launcher 完美地运行了我的应用程序、图形和所有...那么使用 buildozer 创建 apk 时出了什么问题?

标签: android module kivy buildozer


【解决方案1】:

P4A 已自动设置路径,您很可能无法通过其他方式对其进行修改:

import sys
sys.path.append('your path')

【讨论】:

  • 我通过将模块转储到根文件夹中来使模块正常工作,但我无法使用包含图形的 cab 文件夹中的资源来执行此操作。当我的应用程序尝试加载确实退出的 wav 文件时,应用程序以“目录没有此类文件”错误关闭。为什么应用程序看不到它自己的包含 main.pyo 的根文件夹?如果你没有数据库文件夹......那么你可以用 kivy 做任何事情。
  • 请阅读 python 的文档,了解 import 的工作原理。如果您无法加载文件,请使用 os 模块来查找它,例如如果在main.py 中运行此类函数,os.path.dirname(os.path.abspath(__file__)) 是根目录。我不知道那个“数据库”文件夹是什么。如果是Java的东西,它与Kivy一点关系都没有。转储整个框架,因为您无法加载文件,而且很可能您根本没有看到与此类主题相关的 python 文档,这只是愚蠢的。
  • 我知道导入的过程,多年来一直使用 python。我的模块问题原来是规范文件问题。 Kivy 文档不涵盖小的“细节”,因此用户可能会像我一样在这些问题上滑倒。未来,我想写一个关于虚拟机、kivy 和 buildozer 的完整、详细的文档……包括那些将我钉在地上的未提及的东西。
【解决方案2】:

刚刚将自定义模块放在 main.py (pyo) 所在的同一位置。 Kivy 就像我过去使用的另一个 API 集,只是 kivy 不是一个完整的 3D 引擎。就像我过去使用的 3D 引擎一样,最终的包是从虚拟环境中运行的。不同之处在于我可以将自定义模块存储在 python 的 site-packages 目录中。

在 kivy 中不是这种情况(至少不是通过 buildozer),最好选择根目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-26
    • 2021-02-28
    • 2020-06-12
    • 2016-10-27
    • 2019-12-12
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    相关资源
    最近更新 更多