Kivy-Ios / Xcode ImportError: The _imaging extension was built for another version of Pillow or PIL

Kivy-Ios / Xcode ImportError: The _imaging extension was built for another version of Pillow or PIL

正在使用 Xcode 将我的 Kivy 应用程序部署到 iOS。外面一切正常,只有 iPhone 模拟器给我这个问题。工具链中的枕头配方版本是 8.2(不确定我是否可以/如何将工具链版本升级到 9.1)。

另一位堆栈用户 (@curiousbird11) 几个月前遇到了同样的问题,但尚未解决。请帮助并提前致谢!

Xcode 给我以下错误:

/Users/(my)/Library/Developer/CoreSimulator/Devices/0C30A3E5-1F5A-4671-92D9-2806F50694D6/data/Containers/Bundle/Application/D9338DA3-6EEC-4F8E-987A-F5FA5C485B04/(myapp).app/lib/python3.9/site-packages/PIL/Image.py", line 135, in <module>
raise ImportError(
     
ImportError: The _imaging extension was built for another version of Pillow or PIL:

Core version: 8.2.0
Pillow version: 9.1.0
2022-04-08 19:34:04.916986-0500 (myapp)[95575:896241] Application quit abnormally!
2022-04-08 19:34:04.948859-0500 (myapp)[95575:896241] Leaving

我已经弄明白了。一些先前的上下文:我收到一个先前的错误“Xcode - ModuleNotFoundError:没有名为 'kivymd' 的模块。我在 Whosebug 上找到了解决此错误的方法:

"从 /usr/local/lib/python3.9/site-packages 复制 kivymd 包并粘贴到 kivy-ios/dist/root/python3/lib/python3.9/site-packages

这解决了那个问题。但是,我无意中复制并替换了现有的 site-packages(而不是仅仅添加它们而不是替换)。

所以为了解决它,我首先卸载了 Pillow 9.1.0 并安装了 Pillow 8.2.0(以匹配工具链配方版本)。然后以粗体复制上面的文件,不替换现有文件。

现在我的 Kivy 应用程序可以在 Xcode 模拟器中运行。希望这对某人有所帮助!