【发布时间】:2021-11-16 12:58:35
【问题描述】:
MacOS:Monterey 12.0.1,目前 (16-11-21) 最新版本
IDE:Visual Studio 代码
我想使用 Kivy 为大学项目创建一些简单的桌面应用程序界面。我按照 kivy.org 上的说明进行操作:
- pip 安装 venv 工具,
- 创建和激活 venv,
- 使用 brew 安装其他依赖项,
-
python3 -m pip install kivy[base] kivy_examples, - 运行默认的“Hello world!”文件:
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text='Hello World')
TestApp().run()
这是它给我的输出:
(kivy_venv) jdhamelink@Josefs-MacBook-Air UNO_X % /Users/jdhamelink/Local/UNO_X/kivy_venv/bin/python /Users/jdhamelink/Local/UNO_X/main.py
[INFO ] [Logger ] Record log in /Users/jdhamelink/.kivy/logs/kivy_21-11-16_6.txt
[INFO ] [Kivy ] v2.0.0
[INFO ] [Kivy ] Installed at "/Users/jdhamelink/Local/UNO_X/kivy_venv/lib/python3.8/site-packages/kivy/__init__.py"
[INFO ] [Python ] v3.8.9 (default, Aug 3 2021, 19:21:54)
[Clang 13.0.0 (clang-1300.0.29.3)]
[INFO ] [Python ] Interpreter at "/Users/jdhamelink/Local/UNO_X/kivy_venv/bin/python"
[ERROR ] [Clock ] Unable to import kivy._clock. Have you perhaps forgotten to compile kivy? Kivy contains Cython code which needs to be compiled. A missing kivy._clock often indicates the Cython code has not been compiled. Please follow the installation instructions and make sure to compile Kivy
Traceback (most recent call last):
File "/Users/jdhamelink/Local/UNO_X/main.py", line 1, in <module>
from kivy.app import App
File "/Users/jdhamelink/Local/UNO_X/kivy_venv/lib/python3.8/site-packages/kivy/app.py", line 411, in <module>
from kivy.base import runTouchApp, async_runTouchApp, stopTouchApp
File "/Users/jdhamelink/Local/UNO_X/kivy_venv/lib/python3.8/site-packages/kivy/base.py", line 28, in <module>
from kivy.clock import Clock
File "/Users/jdhamelink/Local/UNO_X/kivy_venv/lib/python3.8/site-packages/kivy/clock.py", line 466, in <module>
from kivy._clock import CyClockBase, ClockEvent, FreeClockEvent, \
ImportError: dlopen(/Users/jdhamelink/Local/UNO_X/kivy_venv/lib/python3.8/site-packages/kivy/_clock.cpython-38-darwin.so, 0x0002): tried: '/Users/jdhamelink/Local/UNO_X/kivy_venv/lib/python3.8/site-packages/kivy/_clock.cpython-38-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/_clock.cpython-38-darwin.so' (no such file), '/usr/lib/_clock.cpython-38-darwin.so' (no such file)
我认为这可能与架构有关,因为最后一行的Importerror,特别是:
tried: '/Users/jdhamelink/Local/UNO_X/kivy_venv/lib/python3.8/site-packages/kivy/_clock.cpython-38-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/_clock.cpython-38-darwin.so' (no such file), '/usr/lib/_clock.cpython-38-darwin.so' (no such file)
在线我找不到这个问题的明确解决方案,但我怀疑它可能与“新” M1 芯片有关,它的架构可能会引起一些问题。很可能是我在安装过程中忘记了一些非常明显的步骤,因为我也得到了一个提示,我可能忘记了编译 Cython 代码,这是我以前从未听说过的。有人可以帮我吗?
--- 编辑 ---
我已经在虚拟环境中安装了 kivy,并使用 pip3 “全局”安装了
【问题讨论】:
标签: python macos kivy cython apple-m1