我正在使用 kivy 和 buildozer 构建一个 Android 应用程序。运行我的应用程序后它崩溃了。我看到它的日志上面写着
文件“/home/ali/Documents/Cryptography/.buildozer/android/app/main.py”,第 366 行,位于
文件“/home/ali/Documents/Cryptography/.buildozer/android/app/main.py”,第 379 行,位于 Episode_menu_callback
文件“”,第 1 行,位于
文件“/home/ali/Documents/Cryptography/.buildozer/android/app/qpcrypto/kem/kyber1024.py”,第 1 行,位于
ModuleNotFoundError:没有名为“qpcrypto._kem.kyber1024”的模块
Android 版 Python 结束了。
我的main.py代码的第378行和379行如下
import_statement = f"from qpcrypto.kem.{text_item} import generate_keypair, encrypt, decrypt"
exec(import_statement)
其中text_item是'kyber1024'。
在我的 kyber1024 的第一行中,我有“from .._kem.kyber1024 import ffi as __ffi, lib as __lib”
我的目录结构如下
|-- main.py
|-- qpcrypto
| |-- _kem
| | |-- kyber1024.c
| | |-- kyber1024.cpython-310-x86_64-linux-gnu.so
| | |-- kyber1024.o
| |-- kem
| | |--kyber1024.py
并不是说在我的 _kem 目录中我没有 kyber1024.py。
当我在我的电脑上运行这个应用程序时,它运行良好,但是在使用 buildozer 将其转换为 .apk 文件后,我收到了上述错误。
在我的 .spec 文件中
source.include_exts = py,png,jpg,kv,atlas,ttf,txt,json,pkl,mp4,mp3,so,c,h,o
事实上我想在我的 kivy 应用程序中使用 python pqcrypto 。它的安装并不像https://github.com/kpdemetriou/pqcrypto/issues/10中讨论的那么简单。所以我首先将它安装到我的电脑上,现在我在我的 kivy 项目中使用安装的文件(qpcrypto)。
嗨,你找到了解决方案吗?