【问题标题】:NameError: name 'sys' is not defined appears with buildozerNameError: name \'sys\' is not defined 与 buildozer 一起出现
【发布时间】:2023-02-05 03:53:15
【问题描述】:

我尝试用tapo-plug、kivy和buildozer包做了一个Android应用,打开后应用直接崩溃了。我以前从未做过这样的事情。这是我的手机发送的错误消息:

02-04 16:32:53.560 23072 23113 I python  :  Traceback (most recent call last):
02-04 16:32:53.561 23072 23113 I python  :    File "/home/daniel/test/ServerManagementApp/.buildozer/android/app/main.py", line 19, in <module>
02-04 16:32:53.561 23072 23113 I python  :    File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/tapo_plug/tapoPlugApi.py", line 11, in <module>
02-04 16:32:53.561 23072 23113 I python  :    File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/tapo_plug/tapoEncryption.py", line 7, in <module>
02-04 16:32:53.561 23072 23113 I python  :    File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/Crypto/PublicKey/RSA.py", line 38, in <module>
02-04 16:32:53.561 23072 23113 I python  :    File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/Crypto/IO/PKCS8.py", line 44, in <module>
02-04 16:32:53.561 23072 23113 I python  :    File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/Crypto/IO/_PBES.py", line 43, in <module>
02-04 16:32:53.561 23072 23113 I python  :    File "/home/daniel/test/ServerManagementApp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/Vexludus/arm64-v8a/Crypto/Hash/MD5.py", line 45, in <module>
02-04 16:32:53.561 23072 23113 I python  :  NameError: name 'sys' is not defined
02-04 16:32:53.561 23072 23113 I python  : Python for android ended.

我已经将 tapo-plug、Crypto、PyCryptodome、pyjwkest、pycrypto 设置为要求。

这是我第一次做这样的事情。

这是发生错误的脚本部分:

from Crypto.Util.py3compat import *

从 Crypto.Util._raw_api 导入(load_pycryptodome_raw_lib, 虚空指针、智能指针、 创建_string_buffer, get_raw_buffer,c_size_t, c_uint8_ptr)

_raw_md5_lib = load_pycryptodome_raw_lib("加密.Hash._MD5", """ #define MD5_DIGEST_SIZE 16

                    int MD5_init(void **shaState);
                    int MD5_destroy(void *shaState);
                    int MD5_update(void *hs,
                                      const uint8_t *buf,
                                      size_t len);
                    int MD5_digest(const void *shaState,
                                      uint8_t digest[MD5_DIGEST_SIZE]);
                    int MD5_copy(const void *src, void *dst);

                    int MD5_pbkdf2_hmac_assist(const void *inner,
                                        const void *outer,
                                        const uint8_t first_digest[MD5_DIGEST_SIZE],
                                        uint8_t final_digest[MD5_DIGEST_SIZE],
                                        size_t iterations);
                    """)

【问题讨论】:

  • 您是否尝试使用sys而不先使用import sys
  • 向我们展示MD5.py 文件。
  • 该错误仅在包脚本中的 android 设备上运行时发生。因此它不是我自己写的脚本。

标签: python android runtime-error sys buildozer


【解决方案1】:

如果没有最少的可复制样本,很难猜测是什么导致了您的问题。我制作了简单的 Kivy 项目,它在 Windows 和 Android 下运行没有问题。

buildozer.spec 要求:

requirements = python3,kivy,pycryptodome

示例代码:

from kivy.app import App
from Crypto.Util.py3compat import *  # pip install pycryptodome
from Crypto.Hash.MD5 import *
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label

class app(App):
    def build(self):
        return BoxLayout(orientation='vertical')

    def on_start(self):
        self.root.add_widget(Label(text=str(b('test'))))
        self.root.add_widget(Label(text=MD5Hash(b'test').hexdigest()))

app().run()

【讨论】:

    猜你喜欢
    • 2022-12-02
    • 2015-11-11
    • 2012-05-22
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2017-01-09
    相关资源
    最近更新 更多