有没有办法为整个包导入python模块?

TWO*_*WOF 7 python import packages python-3.x

我有一个看起来像这样的包结构

??? Plugins
?   ??? Eight_Ball.py
?   ??? Ping.py
?   ??? Weather.py
?   ??? __init__.py
Run Code Online (Sandbox Code Playgroud)

包内的每个 .py 文件都需要从项目的其他地方导入一些模块。我宁愿包中的每个文件都没有以

from ..Utils.constants import Plugin_Type
from ..Models.Plugin import Plugin
from ..Models.Singleton import Singleton
Run Code Online (Sandbox Code Playgroud)

那么有没有办法让Plugins包中的文件默认具有这些导入?

Blu*_*ode 7

简而言之,不,Plugins默认情况下无法让包中的文件导入东西。

虽然通常不鼓励使用from module import *,但如果您真的想保存那几行额外的行,您可以制作一个通用导入文件来导入您需要的所有内容,如下所示:

common_imports.py:

  from ..Utils.constants import Plugin_Type
  from ..Models.Plugin import Plugin
  from ..Models.Singleton import Singleton
Run Code Online (Sandbox Code Playgroud)

other_files.py:

  from .common_imports import *
Run Code Online (Sandbox Code Playgroud)

同样,from module import *不鼓励使用,我建议您只在每个文件的开头包含这几行。