Android版Buildozer和Python

Android版Buildozer和Python,python,kivy,buildozer,p4a,python-for-android,Python,Kivy,Buildozer,P4a,Python For Android,我在Manjaro Linux系统上创建了一个Conda环境。 当我开发一个Kivy应用程序并运行它时,它运行得很好。 然后当我把它编译成APK在我的Android平板电脑上运行时,我遇到了一个奇怪的问题。我可以成功创建APK并将其安装到平板电脑上。 但是 Python For Android下载包,是我在构建APK时安装的。有时它会下载我不使用的版本。有时它找不到我已经安装的软件包 我的问题是:我如何覆盖(可能在我的Buildozer规范文件中)P4A下载包(我猜它被称为recipes),并只

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

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

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

这不是一个奇怪的问题,这只是python for android的工作方式。它需要为android环境安装软件包,这不一定可以使用您在本地拥有的软件包,即使是这样,对于android来说,python操作仍然是一种更简单的方式

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

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

根据conda缓存包的方式,您可能可以将其指向所拉的内容,但这不适用于车轮等

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

如果这是您的目标,您可以使用
requirements=package==version
,例如
requirements=colorama==0.4.4
,为事物指定版本。但是,对于使用recipes安装的软件包,可能不支持所有版本,通常最好使用默认值。例如,仅支持某些python3次要版本