Задать вопрос
@WhiteBlackGoose

Как скомпилировать под Android из python (Kivy) при ошибке импорта __ctypes?

Поставил киви, buildozer.
Моя борьба (очень кратко)

1) pip3 запускался запускался, а теперь перестал (ошибка import main в первой строке). Только python3 -m pip
2) С 10^19 попытки ставлю jdk11, потом читаю хабр, ставлю восьмерку
3) <...> (какая-то проблема с buildozer) (здесь забыл, так как еще не записывал
4)
Ругается, что тут не указаны sdk и ndk (хотя эта команда вызывается из buildozer android build)
/usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=test2 --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/whiteblackgoose/PycharmProjects/mobileapp/test2/.buildozer/android/platform/build" --ndk-api=21

Взял ее, ручками указал sdk и ndk:
/usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=test2 --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/whiteblackgoose/PycharmProjects/mobileapp/test2/.buildozer/android/platform/build" --ndk-api=21 --sdk-dir=/home/whiteblackgoose/.buildozer/android/platform/android-sdk --ndk-dir=/home/whiteblackgoose/.buildozer/android/platform/android-ndk-r17c

Теперь выдает ошибку:
Couldn't find a virtualenv executable, you must install this to use p4a

Помогла переустановка virtualenv
Затем выдавал ошибку 127 (я ее решил, если надо - скажу как).
О, и еще жаловался на отсутствие линковщика llm (который, впрочем, он как-то обходит). Я его поставил ставиться, но это очень долгий процесс
Ну и наконец возвращаемся в настоящее


Если запускать последнюю команду из спойлера, выдает ошибку
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'


Вот чуть больше инфы:
File "/home/whiteblackgoose/PycharmProjects/mobileapp/test2/.buildozer/android/platform/build/build/other_builds/hostpython3/desktop/hostpython3/Lib/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'


  STDERR:

whiteblackgoose@whiteblackgoose-VirtualBox:~/PycharmProjects/mobileapp/test2$ python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> import _ctypes
>>>


Заметьте, когда я пробую импортировать ТОТ же модуль в питоне сам, он импортится. То есть как-то cython в buildozer поставить.

Дальше не получается... Куда копать?
  • Вопрос задан
  • 710 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@WhiteBlackGoose Автор вопроса
Решил проблему установкой libffi-dev, https://stackoverflow.com/questions/57655121/kivy-...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы