Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在包中包含可选模块_Python - Fatal编程技术网

Python 如何在包中包含可选模块

Python 如何在包中包含可选模块,python,Python,我正在制作一个基于Pyaudio的软件包来处理一些音频处理和播放 我想在Gui.py(Gui类)中创建一个可选的Gui类,它是一个基于PyQt5的Gui控制台 但是,由于该软件包主要是与音频相关的软件包。我想让Gui类成为一个可选的导入,这样当用户导入没有PyQt5依赖关系的主模块时,他们当然可以使用除Gui部分之外的模块 src ----__init__.py ----myaudio.py ----mygui.py #__init__.py from .myaudio import Pya

我正在制作一个基于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
使用try-ininit可以吗?如果捕获到异常,它将跳过整个导入mygui?myaudio完全独立于mygui。我不确定在这种情况下什么是好的做法


非常感谢

那么,为什么需要在
\uuuu init\uuuuuuuuuupy
中导入子模块呢

为什么不让您的用户从您的_包中以
的形式导入它们。myaudio import Pyaudio
。在这种情况下,您不需要做任何事情


如果他们想使用GUI,他们只需要从您的软件包中使用
。mygui导入mygui

那么为什么您需要在
\uu init\uuuuuuuupy
中导入子模块呢

为什么不让您的用户从您的_包中以
的形式导入它们。myaudio import Pyaudio
。在这种情况下,您不需要做任何事情


如果他们想使用GUI,他们只需使用您的_包中的
。mygui导入mygui

,因为我计划在将来再增加一些类。我希望能够从我的_包导入*或简单地导入我的_包,它可以包含所有模块,当然除了没有依赖项的模块。好吧,
从x导入*
不是一个好主意,因为它会污染名称空间。不管怎样,您都可以导入
\uuuu init\uuuu.py
中的所有内容,并允许用户在明确希望使用GUI时从x.mygui手动导入
,导入mygui
。根据您的建议,如果PyQt5依赖项不可用,它会在python setup.py安装或pip安装期间返回错误吗?谢谢,因为我打算以后再上几节课。我希望能够从我的_包导入*或简单地导入我的_包,它可以包含所有模块,当然除了没有依赖项的模块。好吧,
从x导入*
不是一个好主意,因为它会污染名称空间。不管怎样,您都可以导入
\uuuu init\uuuu.py
中的所有内容,并允许用户在明确希望使用GUI时从x.mygui手动导入
,导入mygui
。根据您的建议,如果PyQt5依赖项不可用,它会在python setup.py安装或pip安装期间返回错误吗?谢谢