如何解决 Android 13 的 kivy 应用程序的 Buildozer 打包中与 Kivy 的 Cython 编译相关的错误

问题描述 投票:0回答:1

我运行了以下 buildozer 代码,用于为 Android 环境打包 kivy 应用程序

!buildozer -v android debug

我收到以下错误片段,显示与 Kivy 包的 Cython 编译相关的一系列错误


[INFO]:    Cythonize kivy/lib/gstplayer/_gstplayer.pyx
[DEBUG]:   -> running python3 -cimport sys; from Cython.Compiler.Main import setuptools_main; sys.exit(setuptools_main()); ./kivy/lib/gstplayer/_gstplayer.pyx
[DEBUG]:    /usr/local/lib/python3.10/dist-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/kivy/arm64-v8a__ndk_target_21/kivy/kivy/lib/gstplayer/_gstplayer.pyx
[DEBUG]:      tree = Parsing.p_module(s, pxd, full_module_name)
[DEBUG]:    performance hint: kivy/lib/gstplayer/_gstplayer.pyx:126:5: Exception check on '_on_appsink_sample' will always require the GIL to be acquired.
[DEBUG]:    Possible solutions:
[DEBUG]:        1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
[DEBUG]:        2. Use an 'int' return type on the function to allow an error code to be returned.
[DEBUG]:    performance hint: kivy/lib/gstplayer/_gstplayer.pyx:135:5: Exception check on '_on_gstplayer_message' will always require the GIL to be acquired.
[DEBUG]:    Possible solutions:
[DEBUG]:        1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
[DEBUG]:        2. Use an 'int' return type on the function to allow an error code to be returned.
[DEBUG]:    
[DEBUG]:    Error compiling Cython file:
[DEBUG]:    ------------------------------------------------------------
[DEBUG]:    ...
[DEBUG]:                raise GstPlayerException('Unable to get the bus from the pipeline')
[DEBUG]:    
[DEBUG]:            gst_bus_enable_sync_message_emission(self.bus)
[DEBUG]:            if self.eos_cb or self.message_cb:
[DEBUG]:                self.hid_message = c_bus_connect_message(
[DEBUG]:                        self.bus, _on_gstplayer_message, <void *>self)
[DEBUG]:                                  ^
[DEBUG]:    ------------------------------------------------------------
[DEBUG]:    
[DEBUG]:    kivy/lib/gstplayer/_gstplayer.pyx:228:30: Cannot assign type 'void (void *, GstMessage *) except * nogil' to 'buscallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, GstMessage *) except * nogil'.
[DEBUG]:    
[DEBUG]:    Error compiling Cython file:
[DEBUG]:    ------------------------------------------------------------
[DEBUG]:    ...
[DEBUG]:            # attach the callback
[DEBUG]:            # NOTE no need to create a weakref here, as we manage to grab/release
[DEBUG]:            # the reference of self in the set_sample_callback() method.
[DEBUG]:            if self.sample_cb:
[DEBUG]:                self.hid_sample = c_appsink_set_sample_callback(
[DEBUG]:                        self.appsink, _on_appsink_sample, <void *>self)
[DEBUG]:                                      ^
[DEBUG]:    ------------------------------------------------------------
[DEBUG]:    
[DEBUG]:    kivy/lib/gstplayer/_gstplayer.pyx:269:34: Cannot assign type 'void (void *, int, int, char *, int) except * nogil' to 'appcallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, int, int, char *, int) except * nogil'.
[DEBUG]:    
[DEBUG]:    Error compiling Cython file:
[DEBUG]:    ------------------------------------------------------------
[DEBUG]:    ...
[DEBUG]:            if self.appsink != NULL:
[DEBUG]:                gst_element_get_state(self.pipeline, &current_state,
[DEBUG]:                        &pending_state, <GstClockTime>GST_SECOND)
[DEBUG]:                if current_state != GST_STATE_PLAYING:
[DEBUG]:                    c_appsink_pull_preroll(
[DEBUG]:                        self.appsink, _on_appsink_sample, <void *>self)
[DEBUG]:                                      ^
[DEBUG]:    ------------------------------------------------------------
[DEBUG]:    
[DEBUG]:    kivy/lib/gstplayer/_gstplayer.pyx:418:34: Cannot assign type 'void (void *, int, int, char *, int) except * nogil' to 'appcallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, int, int, char *, int) except * nogil'.
Exception in thread background thread for pid 42153:
Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/root/.local/lib/python3.10/site-packages/sh.py", line 1641, in wrap
    fn(*rgs, **kwargs)
  File "/root/.local/lib/python3.10/site-packages/sh.py", line 2569, in background_thread
    handle_exit_code(exit_code)
  File "/root/.local/lib/python3.10/site-packages/sh.py", line 2269, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/root/.local/lib/python3.10/site-packages/sh.py", line 869, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /usr/bin/python3 '-cimport sys; from Cython.Compiler.Main import setuptools_main; sys.exit(setuptools_main());' ./kivy/lib/gstplayer/_gstplayer.pyx

  STDOUT:
/usr/local/lib/python3.10/dist-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/kivy/arm64-v8a__ndk_target_21/kivy/kivy/lib/gstplayer/_gstplayer.pyx
  tree = Parsing.p_module(s, pxd, full_module_name)
performance hint: kivy/lib/gstplayer/_gstplayer.pyx:126:5: Exception check on '_on_appsink_sample' will always require the GIL to be acquired.
Possible solutions:
    1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
    2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: kivy/lib/gstplayer/_gstplayer.pyx:135:5: Exception check on '_on_gstplayer_message' will always require the GIL to be acquired.
Possible solutions:
    1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
    2. Use an 'int' return type on the function to allow an error code to be returned.

Error compiling Cython file:
------------------------------------------------------------
...
            raise GstPlayerException('Unable to get the bus from the pipeline')

        gst_bus_enable_sync_message_emission(self.bus)
        if self.eos_cb or self.message_cb:
            self.hid_message = c_bus_connect_message(
                    self.bus, _on_gstplayer_message, <void *>self)
                              ^
------------------------------------------------------------

kivy/lib/gstplayer/_gstplayer.pyx:228:30: Cannot assign type 'void (void *, GstMessage *) except * nogil' to 'buscallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, GstMessage *) except * nogil'.

Error compiling Cython file:
------------------------------------------------------------
...
        # attach the callback
        # NOTE no need to create a weakref here, as we manage to grab/release
        # the reference of self in the set_sample_callback() method.
        if self.sample_cb:
            self.hid_sample = c_appsink_set_sample_callback(
                    self.appsink, _on_appsink_sample, <void *>self)
                                  ^
------------------------------------------------------------

kivy/lib/gstplayer/_gstplayer.pyx:269:34: Cannot assign type 'void (void *, int, int, char *, int) except * nogil' to 'appcallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, int, int, char *, int) except * nogil'.

Error compiling Cython file:
------------------------------------------------------------
...
        if self.appsink != NULL:
            gst_element_get_state(self.pipeline, &current_state,
                    &pending_state, <GstClockTime>GST_SECOND)
            if current_state != GST_STATE_PLAYING:
                c_appsink_pull_preroll(
                    self.appsink, _on_appsink_sample, <void *>self)
                                  ^
------------------------------------------------------------

kivy/lib/gstplayer/_gstplayer.pyx:418:34: Cannot assign type 'void (void *, int, int, char *, int) except * nogil' to 'appcallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, int, int, char *, int) except * nogil'.


  STDERR:

Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1262, in <module>
    main()
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main
    ToolchainCL()
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 680, in __init__
    getattr(self, command)(args)
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 99, in wrapper_func
    build_dist_from_args(ctx, dist, args)
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 158, in build_dist_from_args
    build_recipes(build_order, python_modules, ctx,
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 504, in build_recipes
    recipe.build_arch(arch)
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 1028, in build_arch
    self.build_cython_components(arch)
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 1053, in build_cython_components
    self.cythonize_build(env=env)
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/recipes/kivy/__init__.py", line 38, in cythonize_build
    super().cythonize_build(env, build_dir=build_dir)
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 1101, in cythonize_build
    self.cythonize_file(env, build_dir, join(root, filename))
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/recipes/kivy/__init__.py", line 59, in cythonize_file
    super().cythonize_file(env, build_dir, filename)
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 1090, in cythonize_file
    shprint(python_command, "-c"
  File "/content/.buildozer/android/platform/python-for-android/pythonforandroid/logger.py", line 167, in shprint
    for line in output:
  File "/root/.local/lib/python3.10/site-packages/sh.py", line 915, in next
    self.wait()
  File "/root/.local/lib/python3.10/site-packages/sh.py", line 845, in wait
    self.handle_command_exit_code(exit_code)
  File "/root/.local/lib/python3.10/site-packages/sh.py", line 869, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /usr/bin/python3 '-cimport sys; from Cython.Compiler.Main import setuptools_main; sys.exit(setuptools_main());' ./kivy/lib/gstplayer/_gstplayer.pyx

  STDOUT:
/usr/local/lib/python3.10/dist-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/kivy/arm64-v8a__ndk_target_21/kivy/kivy/lib/gstplayer/_gstplayer.pyx
  tree = Parsing.p_module(s, pxd, full_module_name)
performance hint: kivy/lib/gstplayer/_gstplayer.pyx:126:5: Exception check on '_on_appsink_sample' will always require the GIL to be acquired.
Possible solutions:
    1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
    2. Use an 'int' return type on the function to allow an error code to be returned.
performance hint: kivy/lib/gstplayer/_gstplayer.pyx:135:5: Exception check on '_on_gstplayer_message' will always require the GIL to be acquired.
Possible solutions:
    1. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
    2. Use an 'int' return type on the function to allow an error code to be returned.

Error compiling Cython file:
------------------------------------------------------------
...
            raise GstPlayerException('Unable to get the bus from the pipeline')

        gst_bus_enable_sync_message_emission(self.bus)
        if self.eos_cb or self.message_cb:
            self.hid_message = c_bus_connect_message(
                    self.bus, _on_gstplayer_message, <void *>self)
                              ^
------------------------------------------------------------

kivy/lib/gstplayer/_gstplayer.pyx:228:30: Cannot assign type 'void (void *, GstMessage *) except * nogil' to 'buscallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, GstMessage *) except * nogil'.

Error compiling Cython file:
------------------------------------------------------------
...
        # attach the callback
        # NOTE no need to create a weakref here, as we manage to grab/release
        # the reference of self in the set_sample_callback() method.
        if self.sample_cb:
            self.hid_sample = c_appsink_set_sample_callback(
                    self.appsink, _on_appsink_sample, <void *>self)
                                  ^
------------------------------------------------------------

kivy/lib/gstplayer/_gstplayer.pyx:269:34: Cannot assign type 'void (void *, int, int, char *, int) except * nogil' to 'appcallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, int, int, char *, int) except * nogil'.

Error compiling Cython file:
------------------------------------------------------------
...
        if self.appsink != NULL:
            gst_element_get_state(self.pipeline, &current_state,
                    &pending_state, <GstClockTime>GST_SECOND)
            if current_state != GST_STATE_PLAYING:
                c_appsink_pull_preroll(
                    self.appsink, _on_appsink_sample, <void *>self)
                                  ^
------------------------------------------------------------

kivy/lib/gstplayer/_gstplayer.pyx:418:34: Cannot assign type 'void (void *, int, int, char *, int) except * nogil' to 'appcallback_t'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (void *, int, int, char *, int) except * nogil'.


  STDERR:




# Command failed: ['/usr/bin/python3', '-m', 'pythonforandroid.toolchain', 'create', '--dist_name=kdvpainlevecompatibilityapp', '--bootstrap=sdl2', '--requirements=python3,kivy==2.2.1,kivymd==1.1.1,sympy=1.12,mpmath=1.3.0', '--arch=arm64-v8a', '--arch=armeabi-v7a', '--copy-libs', '--color=always', '--storage-dir=/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a', '--ndk-api=21', '--ignore-setup-py', '--debug']
# ENVIRONMENT:
#     SHELL = '/bin/bash'
#     NV_LIBCUBLAS_VERSION = '11.11.3.6-1'
#     NVIDIA_VISIBLE_DEVICES = 'all'
#     COLAB_JUPYTER_TRANSPORT = 'ipc'
#     NV_NVML_DEV_VERSION = '11.8.86-1'
#     NV_CUDNN_PACKAGE_NAME = 'libcudnn8'
#     CGROUP_MEMORY_EVENTS = '/sys/fs/cgroup/memory.events /var/colab/cgroup/jupyter-children/memory.events'
#     NV_LIBNCCL_DEV_PACKAGE = 'libnccl-dev=2.15.5-1+cuda11.8'
#     NV_LIBNCCL_DEV_PACKAGE_VERSION = '2.15.5-1'
#     VM_GCE_METADATA_HOST = '169.254.169.253'
#     HOSTNAME = 'd0869d5a7c84'
#     LANGUAGE = 'en_US'
#     TBE_RUNTIME_ADDR = '172.28.0.1:8011'
#     GCE_METADATA_TIMEOUT = '3'
#     NVIDIA_REQUIRE_CUDA = ('cuda>=11.8 brand=tesla,driver>=470,driver<471 '
 'brand=unknown,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 '
 'brand=nvidiartx,driver>=470,driver<471 brand=geforce,driver>=470,driver<471 '
 'brand=geforcertx,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 '
 'brand=quadrortx,driver>=470,driver<471 brand=titan,driver>=470,driver<471 '
 'brand=titanrtx,driver>=470,driver<471')
#     NV_LIBCUBLAS_DEV_PACKAGE = 'libcublas-dev-11-8=11.11.3.6-1'
#     NV_NVTX_VERSION = '11.8.86-1'
#     COLAB_JUPYTER_IP = '172.28.0.12'
#     NV_CUDA_CUDART_DEV_VERSION = '11.8.89-1'
#     NV_LIBCUSPARSE_VERSION = '11.7.5.86-1'
#     COLAB_LANGUAGE_SERVER_PROXY_ROOT_URL = 'http://172.28.0.1:8013/'
#     NV_LIBNPP_VERSION = '11.8.0.86-1'
#     NCCL_VERSION = '2.15.5-1'
#     KMP_LISTEN_PORT = '6000'
#     TF_FORCE_GPU_ALLOW_GROWTH = 'true'
#     ENV = '/root/.bashrc'
#     PWD = '/content'
#     COLAB_LANGUAGE_SERVER_PROXY_REQUEST_TIMEOUT = '30s'
#     TBE_EPHEM_CREDS_ADDR = '172.28.0.1:8009'
#     TBE_CREDS_ADDR = '172.28.0.1:8008'
#     NV_CUDNN_PACKAGE = 'libcudnn8=8.9.6.50-1+cuda11.8'
#     NVIDIA_DRIVER_CAPABILITIES = 'compute,utility'
#     COLAB_JUPYTER_TOKEN = ''
#     LAST_FORCED_REBUILD = '20231120'
#     NV_NVPROF_DEV_PACKAGE = 'cuda-nvprof-11-8=11.8.87-1'
#     NV_LIBNPP_PACKAGE = 'libnpp-11-8=11.8.0.86-1'
#     NV_LIBNCCL_DEV_PACKAGE_NAME = 'libnccl-dev'
#     TCLLIBPATH = '/usr/share/tcltk/tcllib1.20'
#     NV_LIBCUBLAS_DEV_VERSION = '11.11.3.6-1'
#     COLAB_KERNEL_MANAGER_PROXY_HOST = '172.28.0.12'
#     NVIDIA_PRODUCT_NAME = 'CUDA'
#     NV_LIBCUBLAS_DEV_PACKAGE_NAME = 'libcublas-dev-11-8'
#     USE_AUTH_EPHEM = '1'
#     NV_CUDA_CUDART_VERSION = '11.8.89-1'
#     COLAB_WARMUP_DEFAULTS = '1'
#     HOME = '/root'
#     LANG = 'en_US.UTF-8'
#     COLUMNS = '100'
#     CUDA_VERSION = '11.8.0'
#     CLOUDSDK_CONFIG = '/content/.config'
#     NV_LIBCUBLAS_PACKAGE = 'libcublas-11-8=11.11.3.6-1'
#     NV_CUDA_NSIGHT_COMPUTE_DEV_PACKAGE = 'cuda-nsight-compute-11-8=11.8.0-1'
#     COLAB_RELEASE_TAG = 'release-colab_20231130-060122_RC00'
#     PYDEVD_USE_FRAME_EVAL = 'NO'
#     KMP_TARGET_PORT = '9000'
#     CLICOLOR = '1'
#     KMP_EXTRA_ARGS = ('--logtostderr --listen_host=172.28.0.12 --target_host=172.28.0.12 '
 '--tunnel_background_save_url=https://colab.research.google.com/tun/m/cc48301118ce562b961b3c22d803539adc1e0c19/m-s-3gk88z1ady4hk '
 '--tunnel_background_save_delay=10s '
 '--tunnel_periodic_background_save_frequency=30m0s '
 '--enable_output_coalescing=true --output_coalescing_required=true')
#     NV_LIBNPP_DEV_PACKAGE = 'libnpp-dev-11-8=11.8.0.86-1'
#     COLAB_LANGUAGE_SERVER_PROXY_LSP_DIRS = '/datalab/web/pyright/typeshed-fallback/stdlib,/usr/local/lib/python3.10/dist-packages'
#     NV_LIBCUBLAS_PACKAGE_NAME = 'libcublas-11-8'
#     COLAB_KERNEL_MANAGER_PROXY_PORT = '6000'
#     CLOUDSDK_PYTHON = 'python3'
#     NV_LIBNPP_DEV_VERSION = '11.8.0.86-1'
#     ENABLE_DIRECTORYPREFETCHER = '1'
#     NO_GCE_CHECK = 'False'
#     JPY_PARENT_PID = '75'
#     PYTHONPATH = '/env/python'
#     TERM = 'xterm-color'
#     NV_LIBCUSPARSE_DEV_VERSION = '11.7.5.86-1'
#     GIT_PAGER = 'cat'
#     LIBRARY_PATH = '/usr/local/cuda/lib64/stubs'
#     NV_CUDNN_VERSION = '8.9.6.50'
#     SHLVL = '0'
#     PAGER = 'cat'
#     COLAB_LANGUAGE_SERVER_PROXY = '/usr/colab/bin/language_service'
#     NV_CUDA_LIB_VERSION = '11.8.0-1'
#     NVARCH = 'x86_64'
#     NV_CUDNN_PACKAGE_DEV = 'libcudnn8-dev=8.9.6.50-1+cuda11.8'
#     NV_CUDA_COMPAT_PACKAGE = 'cuda-compat-11-8'
#     MPLBACKEND = 'module://ipykernel.pylab.backend_inline'
#     NV_LIBNCCL_PACKAGE = 'libnccl2=2.15.5-1+cuda11.8'
#     LD_LIBRARY_PATH = '/usr/local/nvidia/lib:/usr/local/nvidia/lib64'
#     COLAB_GPU = ''
#     GCS_READ_CACHE_BLOCK_SIZE_MB = '16'
#     NV_CUDA_NSIGHT_COMPUTE_VERSION = '11.8.0-1'
#     NV_NVPROF_VERSION = '11.8.87-1'
#     LC_ALL = 'en_US.UTF-8'
#     COLAB_FILE_HANDLER_ADDR = 'localhost:3453'
#     PATH = '/root/.buildozer/android/platform/apache-ant-1.9.4/bin:/opt/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tools/node/bin:/tools/google-cloud-sdk/bin'
#     NV_LIBNCCL_PACKAGE_NAME = 'libnccl2'
#     COLAB_DEBUG_ADAPTER_MUX_PATH = '/usr/local/bin/dap_multiplexer'
#     NV_LIBNCCL_PACKAGE_VERSION = '2.15.5-1'
#     PYTHONWARNINGS = 'ignore:::pip._internal.cli.base_command'
#     DEBIAN_FRONTEND = 'noninteractive'
#     COLAB_BACKEND_VERSION = 'next'
#     OLDPWD = '/'
#     _ = '/usr/local/bin/buildozer'
#     PACKAGES_PATH = '/root/.buildozer/android/packages'
#     ANDROIDSDK = '/root/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/root/.buildozer/android/platform/android-ndk-r25b'
#     ANDROIDAPI = '31'
#     ANDROIDMINAPI = '21'
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2

在此之前我运行的一系列命令如下:

pip3 安装 kivy kivymd mpmath sympy; sudo apt-get 更新; pip3安装--升级mpmath; sudo apt-get install autoconf; pip3安装--升级buildozer; pip3 install --升级 sympy cython mpmath; sudo rm /usr/local/lib/libtbbmalloc_proxy.so.2; sudo rm /usr/local/lib/libtbbbind_2_0.so.3; sudo rm /usr/local/lib/libtbbbind_2_5.so.3; sudo rm /usr/local/lib/libtbbbind.so.3;须藤 rm /usr/local/lib/libtbb.so.12; sudo rm /usr/local/lib/libtbbmalloc.so.2; sudo ln -s /usr/local/lib/libtbbbind.so.3 /usr/lib/libtbbbind.so.3; sudo ln -s /usr/local/lib/libtbbmalloc.so.2 /usr/lib/libtbbmalloc.so.2; sudo ln -s /usr/local/lib/libtbbbind_2_5.so.3 /usr/lib/libtbbbind_2_5.so.3; sudo ln -s /usr/local/lib/libtbb.so.12 /usr/lib/libtbb.so.12; sudo ln -s /usr/local/lib/libtbbmalloc_proxy.so.2 /usr/lib/libtbbmalloc_proxy.so.2; sudo ln -s /usr/local/lib/libtbbbind_2_0.so.3 /usr/lib/libtbbbind_2_0.so.3;须藤 ldconfig; sudo apt-get install -y python3-pip build-essential git python3 python3-dev ffmpeg libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev zlib1g -开发; sudo apt-get install -y libgstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good; sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev libffi-dev uuid-dev libffi7; sudo apt-get install libffi-dev; sudo apt-get install gettext; sudo apt-get install libtool; sudo apt-get install intltool; sudo apt-get install gtk-doc-tools;构建器初始化

请帮忙;该应用程序几乎已接近完成,其目的是在该 Kivy 应用程序的后端使用 sympy 加速基于微分几何的计算。

kivy adb sympy kivymd buildozer
1个回答
0
投票

我怀疑您的 Cython 版本太新,无法编译 Kivy 代码并将其打包到您的应用程序中。

您可以尝试将 Cython 降级到

0.29.26
版本。

© www.soinside.com 2019 - 2024. All rights reserved.