W
W
WhiteBlackGoose2019-08-26 10:45:52
Python
WhiteBlackGoose, 2019-08-26 10:45:52

How to compile for Android from python (Kivy) with __ctypes import error?

Put kiwi, buildozer.

My struggle (very briefly)

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 (который, впрочем, он как-то обходит). Я его поставил ставиться, но это очень долгий процесс
Ну и наконец возвращаемся в настоящее

If you run the last command from the spoiler, it gives an error
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

Here's a little more info:
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:

[email protected]:~/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
>>>

Notice when I try to import the SAME python module myself, it will import. That is, somehow put cython in buildozer.
Further it is impossible... Where to dig?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
W
WhiteBlackGoose, 2019-08-28
@WhiteBlackGoose

Solved the problem by installing libffi-dev, https://stackoverflow.com/questions/57655121/kivy-...

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question