【问题标题】:Install Kivy on MacOS 12 (Monterey) with M1 Chip使用 M1 芯片在 MacOS 12 (Monterey) 上安装 Kivy
【发布时间】:2021-11-01 20:24:10
【问题描述】:

经过数小时的试错,我希望有人可以在这里帮助我。

我得到了我的 MacBook Air(M1,2020),并想在上面使用 kivy 进行 python 编程。 当我 3 个月前第一次购买笔记本电脑时,我花了很多工作才找到一种方法来运行 kivy/在其上执行我的 kivy 代码。 最后,我得到了 Kivy.app 版本,它创建了 [请原谅我的有限理解...] 一个应用程序,我可以将我的 python 文件拖到或通过命令行执行文件,如kivy main.py。通过pip简单地安装kivy的“通常”方式从来没有奏效(据我了解,因为提供的轮子与M1芯片不兼容)。

现在,我将我的 MacOS 升级到 Monterey,这导致一切崩溃。我什至无法提供很多关于损坏的信息。当我尝试在 Kivy-Application 上拖动文件时,什么也没有发生。执行任何文件(即使是简单的print("Hello")通过命令行(如kivy main.py)都会导致

基维
/Applications/Kivy.app/Contents/Resources/venv/bin /Applications/Kivy.app/Contents/Resources /Applications/Kivy.app/Contents/Resources
ImportError: No module named site

由于我没有使用任何特殊设置,仅使用最新版本的最新更新的 MacOS 和 python(通过自制软件安装并在更新操作系统后已重新安装)我希望任何比我更了解如何和为什么的人已经为他/她自己解决了这个问题,可以启发我。

【问题讨论】:

    标签: python macos kivy apple-m1 macos-monterey


    【解决方案1】:

    我可以使用 Rosetta 2 在带有 M1 芯片的 MacOS 上运行 kivy。

    1. 安装罗塞塔 2

      软件更新 --install-rosetta

    2. 用rosetta启动一个终端。右键单击 /Applications/iTerm 或 /Applicatins/Utilities/Terminal > 获取信息 > 使用 Rosetta 打开

    3. 创建一个新的 virtualenv。安装要求

      pip install kivy[base] kivy-examples

    4. 运行 main.py (python main.py)

    main.py

    import kivy
    kivy.require('2.0.0')
    
    from kivy.app import App
    from kivy.uix.label import Label
    
    class MyApp(App):
    
        def build(self):
            return Label(text='Hello world')
    
    if __name__ == '__main__':
        MyApp().run()
    

    【讨论】:

      【解决方案2】:

      您是否安装了 Rosetta2?我问是因为Kivy.app 是英特尔应用程序,没有它就无法工作。

      为 Apple M1 芯片 Mac 安装 CLI Kivy 工具

      您需要 Homebrew 和 XCode,请遵循以下指南:

      调用任一之后:

      python setup.py build_ext --inplace
      

      ...或者你的“make”命令,你可以调用sudo make install在你的Python3文件夹中构建Kivy并删除你之前下载的文件夹。

      如果在构建过程中,由于缺少 cython 而出现错误,则需要从源安装 cython; you can do this here.

      P.S.,我不知道 kivy.app 是如何工作的,但我使用 VSCode + Kivy CLI 2.1.0dev 并且当我启动 kivy 应用程序时(带有导入的 kivy 模块);它使用 kivy 启动,但是当我尝试启动 print('hello') 程序时,它只能从控制台启动(不使用 kivy)。

      【讨论】:

      • 见鬼卢卡,欢迎来到 Stack Overflow 社区。这个答案在很大程度上依赖于外部链接中的内容,尤其是“安装步骤”。您是否可以编辑您的答案以包含外部文档中概述的关键步骤的摘要,以便您的答案是独立的,而不依赖外部资源?维护链接很好,但您的答案不应该依赖它们。
      猜你喜欢
      • 1970-01-01
      • 2022-06-25
      • 2022-08-18
      • 2022-09-23
      • 2021-07-19
      • 2021-04-26
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      相关资源
      最近更新 更多