Python TUI包导入报错:AttributeError: module无'draw'属性
问题原因
直接导入顶层包my_project时,Python不会自动将子模块(比如draw)注册为顶层包的属性,除非你在顶层包的__init__.py中显式声明导入这些子模块。这就是mypro.draw报错,但from my_project import draw能正常运行的核心原因——后者直接导入了子模块本身。
解决方案
修改项目根目录下的__init__.py文件,添加对draw子模块的导入:
# my_project/__init__.py from . import draw # 可选:如果需要其他子模块也能通过顶层包访问,可一并导入 from . import my_math from . import styling
修改后,执行import my_project as mypro时,mypro.draw就会被正确识别,你可以直接调用mypro.draw.box()。
另外,确保draw目录下的__init__.py已经正确导出box函数(从你的测试结果看这部分已正常),示例如下:
# my_project/draw/__init__.py from .shapes import box
内容的提问来源于stack exchange,提问作者slicnake
相关产品推荐
相关产品推荐

