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

如何在Kivy/iOS中添加openssl至requirements?不使用Buildozer

解决Kivy项目Xcode运行时的urllib3导入错误(不用Buildozer的场景)

嘿,我明白你的困境:用garden.mapview的时候依赖requests,结果在Xcode跑起来就报ImportError: No module named urllib3,手动跑了./toolchain.py build openssl却没效果,还不知道怎么把openssl加到requirements里。别慌,下面一步步帮你解决:

1. 先把OpenSSL的编译+安装做完整

你之前只跑了build但可能漏了install步骤,这才导致openssl没真正加入到你的项目环境里。按这个流程来:

  • 切换到你的Kivy toolchain目录(就是放toolchain.py的那个文件夹)
  • 先清理之前可能残留的编译垃圾,避免干扰:
    ./toolchain.py clean openssl
    
  • 然后重新编译,一定要加install步骤:
    ./toolchain.py build openssl
    ./toolchain.py install openssl
    
  • 如果你的项目需要兼容特定iOS架构(比如arm64或者x86_64模拟器),可以指定架构编译,更稳妥:
    ./toolchain.py build openssl --arch arm64,x86_64
    ./toolchain.py install openssl --arch arm64,x86_64
    

2. 补上urllib3和requests的依赖

报urllib3找不到,本质是你的iOS项目环境里没装这个包,而requests完全依赖它。用toolchain把这俩也编译安装上:

  • 先装urllib3:
    ./toolchain.py build urllib3
    ./toolchain.py install urllib3
    
  • 再装requests(虽然它会自动拉依赖,但手动装一遍能确保没问题):
    ./toolchain.py build requests
    ./toolchain.py install requests
    

3. 把这些依赖正式加入项目配置

因为你不用Buildozer,得手动告诉toolchain要把这些包打包进iOS项目:

  • 如果是还没生成iOS项目,直接用这条命令创建,把所有需要的依赖都列在--requirements里:
    ./toolchain.py create <你的项目名> <你的主Python文件路径> --requirements=openssl,urllib3,requests,garden.mapview
    
  • 如果已经生成过项目了,找到项目目录里的requirements.txt,把openssl、urllib3、requests加进去,然后运行更新命令:
    ./toolchain.py update <你的项目名>
    
    另外,garden.mapview如果是用garden install mapview装的,记得把~/.kivy/garden/mapview整个文件夹复制到你的项目根目录,这样toolchain打包时能识别到它。

4. 最后在Xcode里验证一下

打开Xcode里的Kivy项目,检查这几点:

  • Frameworks目录下有没有libcrypto.a和libssl.a(这俩是openssl的核心库)
  • 项目的Python路径配置里,有没有包含toolchain安装包的目录(一般在toolchain/build/ios/<架构>/python/site-packages)

这样操作下来,应该就能解决urllib3的导入错误,让garden.mapview正常工作了!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:06:22