Capa
Capa

Reputation: 31

Android App via buildozer: requirements vs. recipes

i try to deploy an android app. I work with the kivy framework and buildozer in python. My issue is to include the pandas library. This is my simple and working test code:

from kivy.app import App
from kivy.uix.label import Label

import kivy
kivy.require('1.11.1')

import pandas as pd

class TestLibraries(App):
    
    def build(self):
        
        df = pd.DataFrame()
        df.loc[0, 'text'] = 'this is pandas'
        return Label(text = df.loc[0, 'text'])


if __name__ == '__main__':
    TestLibraries().run()

The next step is do define the buildozer .spec file. Here i see two options:

  1. Via requirements: So i modify the .spec file like this
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy==1.11.1,pandas

This works very well. 2. Via recipe: I take the recipe from github. and put it into my folder called recipe. After that i modify the .spec file like this

# (str) The directory in which python-for-android should look for your own build recipes (if any)
p4a.local_recipes = /PATH_TO_FOLDER/recipe/

In the buildozer logfile i can read:

Listing '/PATH_TO_FOLDER/.buildozer/android/app/recipe/pandas'...
Compiling 'PATH_TO_FOLDER/.buildozer/android/app/recipe/pandas/__init__.py'...

So buildozer found the recipe but the library is not installed and the app dosen't works.

And the question is: why not?

You might ask me for using the second option because the first option works very well. In the next step i want to write a new recipe. So i have to learn how to include an existing recipe correctly.

I hope you unterstand my problem an have some advices.

Thanks Capa

Upvotes: 2

Views: 1980

Answers (0)

Related Questions