Я хочу создать приложение, которое снимает фотографии с камеры и покажет эскизы на Android. Связанная часть моего кода:Как импортировать Python PIL на Android и kivy?
from plyer import camera
from PIL import Image
.
.
.
def take_photo_from_camera(self, x):
filename = str(random.randint(0, 100000000000)) # create random filenames
self.camera.take_picture("/storage/sdcard0/MyApp/%s.jpg"%(filename), self.on_success_shot)
def on_success_shot(self, path):
#Create a thumbnail of taken photo here using PIL
Я могу использовать камеру для Android без проблем. Я добавил PIL/подушку требованиям файла kivy buildozer.spec
requirements = kivy, openssl, futures, requests, plyer, pyjnius, pillow
Когда я хочу создать APK с этой конфигурацией, пакет APK успешно строит, но если я установить APK и работать на мой телефон Android, я получаю эту ошибку в logcat:
I/python (20188): Traceback (most recent call last):
I/python (20188): File "/home/mnrl/teknik/.buildozer/android/app/main.py", line 32, in <module>
I/python (20188): File "/home/mnrl/teknik/.buildozer/android/app/_applibs/PIL/Image.py", line 67, in <module>
I/python (20188): ImportError: dlopen failed: "/data/data/org.tokerteknik.tokerteknik/files/_applibs/PIL/_imaging.so" is 64-bit instead of 32-bit
I/python (20188): Python for android ended.
Я думаю, что проблема связана с архитектурой. Я использую ubuntu 16.04 64 бит, а kivy buildozer устанавливает 64-битные библиотеки с помощью pip при установке требований. Аналогичная проблема здесь: https://github.com/kivy/kivy/issues/4095, но решения нет. Вкратце, как я могу импортировать PIL на Android с kivy buildozer или как установить 32-битные библиотеки PIL на 64-битной системе?
Это, вероятно, ошибка в Python-для-андроида, вы в состоянии открыть вопрос на [питон-на-андроид страницы GitHub] (https://github.com/kivy/python-for -android), сообщая также полный журнал построения? – inclement
@inclement Да, я сообщил об этой ошибке для python для страницы android github. Я собираюсь использовать pygame вместо pil для изменения размеров изображений, это работает для меня спасибо :) – mnrl