You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android平台Python应用报错:找不到cryptography指定模块

解决ModuleNotFoundError: No module named 'cryptography.hazmat.primitives.asymmetric.types'

问题背景

基于camera4kivy框架开发Android Python应用,集成OpenCV和asyncua时,在Android Studio模拟器运行出现上述模块找不到的错误,buildozer.spec已指定cryptography==41.0.7,调整导入语句位置无效。

修复方案

1. 调整cryptography版本(最常见解决方法)

asyncua与指定的cryptography 41.0.7可能存在兼容性问题,建议降级到经过Python-for-Android验证的稳定版本,比如39.0.1:
修改buildozer.spec中的requirements行:

requirements = python3,kivy==2.2.1,dateutil==2.8.1,camera4kivy,gestures4kivy,opencv,pyOpenSSL,wheel==0.42.0,cryptography==39.0.1,asyncua,typing_extensions,requests,aiofiles,certifi,urllib3

2. 强制打包时包含缺失模块

buildozer打包时可能未自动包含cryptography的深层子模块,在buildozer.spec中添加以下配置强制包含:

android.p4a_args = --include-modules=cryptography.hazmat.primitives.asymmetric.types

3. 清理缓存重新打包

旧的打包缓存可能残留错误依赖,执行以下操作后重新打包:

rm -rf .buildozer
buildozer android debug deploy run

说明

调整导入语句位置无法解决问题,因为错误根源是打包后该模块未被正确纳入Android应用的Python环境,而非导入顺序问题。

内容的提问来源于stack exchange,提问作者Hirek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:17:03