You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python导入lib.sort模块报错,请求排查基础使用错误

拆解你的Python导入错误问题

嘿,这两个错误都是Python包导入的典型新手坑,我给你一步步理清楚根源和解决办法:

第一个错误:ModuleNotFoundError: No module named 'lib.sort'

这个问题本质是Python找不到你要导入的lib.sort模块,核心原因通常是两个:

  • 项目结构不达标:要么你的lib目录下根本没有sort.py文件,要么lib没被Python认定为可导入的包。Python要求一个目录要成为“包”,必须包含__init__.py文件(哪怕是空文件就行,Python 3.3+支持无这个文件的命名空间包,但新手老老实实加上更不容易出问题)。
  • 搜索路径没覆盖到你的包:lib所在的父目录不在Python的搜索路径sys.path里。举个例子:如果你的脚本在lib目录里面,直接运行的话,Python找不到上层的lib包;正确的做法是在包含lib的那个根目录下运行脚本。

第二个错误:AttributeError: module 'lib' has no attribute 'sort'

当你import lib时,Python只会加载lib包本身(也就是执行lib/__init__.py里的内容),不会自动导入它的子模块sort。哪怕lib目录下确实有sort.py,直接import lib后也没法用lib.sort,解决办法二选一:

  • 在lib/__init__.py里加一行代码:from . import sort,这样你import lib的时候,Python会自动把sort子模块加载进来,之后就能直接调用lib.sort了。
  • 换导入方式:改用from lib import sort或者import lib.sort as sort(前提是第一个错误的问题已经解决)。

标准项目结构参考

给你贴一个能正常运行的项目结构,对照着调整你的文件:

你的项目根目录/
├── main.py  # 你写的包含导入语句的脚本文件
└── lib/
    ├── __init__.py  # 空文件或者写上from . import sort
    └── sort.py      # 存放你的排序相关代码

新手容易踩的小细节

  • 检查文件名拼写:比如有没有把sort.py写成sorts.py,或者大小写搞错(Linux/macOS系统区分文件名大小写,Windows不区分,这点要留意)。
  • 别和标准库重名:如果你的包名和Python自带的库名重复(比如要是你把包名叫math就完蛋了),会导致导入混乱,尽量起独特的名字。

内容的提问来源于stack exchange,提问作者user1551817

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:02:46