J'essaye de construire une application kivy en utilisant la machine virtuelle buildozer. Cela fonctionne correctement tant que mon fichier main.py ne contient aucun chemin d'accès spécifique aux fichiers. Par exemple, dans mon application, je souhaite afficher une image. Si je cours sous Windows, je specifiy la source commeChemin d'accès aux fichiers dans l'application kivy non valide après la construction avec buildozer
C:\pathtoapp\img\image.png
Dans Ubuntu, il serait
/home/pathtoapp/img/image.png
Si je tente de construire l'application avec buildozer je reçois le message d'erreur:
I/Python (15649): [Error ] [Image ] Error reading file
puis le chemin ci-dessus. Voici un exemple qui fonctionne sur Ubuntu, mais qui donne le message d'erreur ci-dessus lorsqu'il est déployé sur mon téléphone Android:
from kivy.lang import Builder
from kivy.app import App
from kivy.uix.image import Image
kv = '''
BoxLayout:
Image:
source: app.image
'''
class Test(App):
def build(self):
self.image = '/home/kivy/Desktop/test/img/g3347.png'
print(self.image)
return Builder.load_string(kv)
if __name__ == '__main__':
Test().run()
Maintenant, je suis perplexe car je ne sais pas comment définir correctement le chemin dans mon code .
Wow, c'est ce que j'aurais dû comprendre moi-même. Merci beaucoup. Cela fonctionne avec des chemins relatifs, mais je garderai la sécurité à l'esprit au cas où je rencontrerais des problèmes dans le futur. – Jobiwan