【问题标题】:Buildozer and Python-for-AndroidBuildozer 和 Python-for-Android
【发布时间】:2021-03-01 00:24:18
【问题描述】:

我在我的 Manjaro Linux 系统上创建了一个 Conda 环境。 当我开发一个 Kivy 应用程序并运行它时,它运行良好。 然后,当我将它编译成 APK 以在我的 Android 平板电脑上运行时,我遇到了一个奇怪的问题。我可以成功创建一个 APK 并将其安装在我的平板电脑上。 但... Python-For-Android 会在构建我的 APK 时下载我已经安装的包。有时它会下载我不使用的版本。有时它找不到我已经安装的包。

我的问题是:我如何覆盖(可能在我的 Buildozer Spec 文件中)P4A 下载包(我猜它被称为食谱)并只使用我已经下载并安装在我的 Conda 环境中的包。 (这样我编译的 APK 将与我在我的 Linux 机器上运行的 Kivy 应用程序完全相同。)

【问题讨论】:

    标签: python kivy buildozer p4a python-for-android


    【解决方案1】:

    我遇到了一个奇怪的问题。我可以成功创建一个 APK 并将其安装在我的平板电脑上。但是... Python-For-Android 会在构建我的 APK 时下载我已经安装的软件包。有时它会下载我不使用的版本

    这不是一个奇怪的问题,它就是 python-for-android 的工作原理。它需要为android环境安装包,这不一定是使用本地的,即使是它仍然是python-for-android操作的一种更简单的方式。

    我的问题是:如何覆盖(可能在我的 Buildozer Spec 文件中)P4A 下载包(我猜它被称为食谱)并只使用我已经下载并安装在我的 Conda 环境中的包

    你不能。 buildozer.spec 文件中有一些选项可以指定给定配方的源目录,但这需要指向项目的源目录(即对于 python 模块,根目录带有 setup.py),而不是在另一个 python 环境中安装包。

    根据 conda 缓存包的方式,您可能能够将其指向它被拉取的内容,但这不适用于例如轮子。

    这样我编译的 APK 将与我在我的 Linux 机器上运行的 Kivy 应用程序完全相同。

    如果这是您的目标,您可以使用 requirements=package==version 指定事物的版本,例如requirements=colorama==0.4.4。但是,对于使用配方安装的软件包,并非所有版本都受支持,通常使用默认值是个好主意。例如,仅支持某些 python3 次要版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 2021-11-10
      • 2021-07-29
      • 1970-01-01
      相关资源
      最近更新 更多