我正在基于Pyaudio制作一个包装,以处理一些音频处理和播放,
我想在gui.py(Gui类)中创建一个可选的Gui类,它是基于PyQt5的GUI控制台。
但是,由于该软件包主要是与音频相关的软件包。我想使Gui类成为可选的导入,以便当用户导入没有PyQt5依赖关系的主模块时,他们当然仍可以使用除gui部分之外的模块。
src
----__init__.py
----myaudio.py
----mygui.py
#__init__.py
from .myaudio import Pyaudio
try:
from .mygui import Mygui
except:
raise Warning("no PyQt5 found, Mygui not available")
#mygui.py
import PyQt5
import myaudio
可以只在 init 中使用try,这样如果捕获到异常会跳过整个导入mygui吗? myaudio完全独立于mygui。我不确定在这种情况下什么是好的做法。
非常感谢。
答案 0 :(得分:2)
那为什么要在__init__.py
中导入子模块?
为什么不让您的用户将其导入为from your_package.myaudio import Pyaudio
。在这种情况下,您无需执行任何操作。
如果他们要使用GUI,则只需使用from your_package.mygui import Mygui
。