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包中的文件默认具有这些导入?
简而言之,不,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 *不鼓励使用,我建议您只在每个文件的开头包含这几行。