如何成功下载库但无法从中导入项目?

问题描述

import kivymd 成功。

from kivymd.app import MDApp 失败。

sdl2 - ImportError: DLL load Failed: Le module spécifié est introuvable.

而且我无法通过以下方式“捕获此异常”:

try:
    from kivymd.app import MDApp
except Exception as e:
    print(e)

为什么我在大导入时没有被阻止?

为什么我不能捕捉到这个异常?

我应该怎么做才能防止这种错误

我应该在 kivymd Github 存储库中创建票证吗? (如果库需要依赖项,认情况下库应该自行下载吗?)

解决方法

  • 为什么我在大导入时没有被阻止?

因为 kivy 可以使用一些延迟加载并且主导入无法触发所有子模块

  • 为什么我不能捕捉到这个异常?

您可以通过以下方式捕获该异常:

try:
    from kivymd.app import MDApp
except ImportError as ie:
    print(ie)
  • 我应该怎么做才能防止这种错误?

Kivy 不是纯 Python 框架,它依赖于多个外部模块,例如 SDL。因此,根据您的操作系统,您必须安装该库。

  • 我应该在 kivymd Github 存储库中创建票证吗? (如果库需要依赖项,默认情况下库应该自行下载吗?)

不一定。这种依赖来自 kivy 本身,而不是直接来自 kivymd,这显然取决于 kivy。建议你查看kivy的安装方法:doc