python - 基维,ModuleNotFoundError : No module named '_ctypes' when building an android app

标签 python android kivy importerror

我正在尝试构建我的第一个 Android 应用程序。我安装了 Kivy、buildozer 并将“hello world”编码为 here .然后,我输入“buildozer android debug”,它抛出了一个错误,“bla bla bla bla sdk directory is not specified” 在此命令中:

/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

所以我在命令中添加了一些参数并使其工作:

/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

所以当我尝试运行它时,它抛出了一个新错误:

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:

我重新安装了 cython 并尝试导入 ctypes 和 _ctypes:

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
>>>

如您所见,当我导入它们时没有问题。但是,如果我运行上面的命令,它会显示“ModuleNotFoundError:没有名为‘_ctypes’的模块”。

如何让 buildozer 可见这个模块?或者 mb 问题是由安装的软件包或某些东西的不正确版本引起的...

最佳答案

您需要安装 libffi 头文件。它们来自 Ubuntu 上的 libffi-dev 包,通常在其他发行版中也有类似的东西。

之后,通过删除应用程序目录中的 .buildozer 目录并重新构建来清理构建。

关于python - 基维,ModuleNotFoundError : No module named '_ctypes' when building an android app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57655121/

相关文章:

python - 拟合分段线性函数时的曲线拟合优化误差

python - 有没有办法用 scikit-learn 获取 "recreate"数据?

java - google_app_id 丢失且 Google 服务初始化失败

安卓工作室 : UnsupportedOperationException: Operation is not supported > for read-only collection

python - 如何在 Kivy 屏幕上打印文本值

python - 构建 kivy 应用程序时出错 : ModuleNotFoundError: No module named 'typing_extensions'

python - 使用 Python 抓取 Twitter 页面

Python——中间人

python - 如何使用kivy显示图像

java - 如何在不需要匿名类的情况下注册对象上的事件?