Python导入自定义useful_tools模块报ModuleNotFoundError问题求助
常见报错原因及排查方法
1. 文件名不符合要求
- 确认文件实际后缀为
.py:Windows系统默认隐藏已知文件后缀,如果你是通过新建文本文档改的文件名,很可能实际文件名为useful_tools.py.txt,Python只会识别后缀为.py的文件作为模块,此时需要在资源管理器顶部开启「显示文件扩展名」选项,修改文件去掉多余的.txt后缀。 - 确认文件名拼写完全匹配:检查是否有拼写错误、多余空格、大小写差异,比如写成
Useful_tools.py、useful_tool.py都无法被正常导入。
2. 运行时工作目录不匹配
你确认两个文件存放在同一文件夹,但Python导入模块时默认优先查找当前运行的工作目录,而非主程序文件所在的目录。比如你用VSCode打开的工作区是两个文件所在文件夹的上级目录,运行子文件夹内的主程序时,工作目录为上级目录,自然找不到子文件夹内的useful_tools模块。
可以在主程序开头加入以下代码验证当前工作目录的文件列表:
import os print("当前工作目录:", os.getcwd()) print("当前工作目录下的文件:", os.listdir())
如果输出的文件列表中没有useful_tools.py,就说明是工作目录的问题,调整IDE的运行配置,将工作目录设置为主程序所在的文件夹即可。
3. 模块搜索路径不包含文件所在目录
如果前两项都没问题,说明你存放文件的目录不在Python的模块搜索路径中,可以临时在主程序导入useful_tools之前添加路径:
import sys import os # 将主程序所在目录加入模块搜索路径 sys.path.append(os.path.dirname(os.path.abspath(__file__)))
4. 命名冲突
检查是否存在同名的其他包、模块,比如你之前创建过名为useful_tools的文件夹,或者安装过同名的第三方库,会导致Python优先导入了其他同名对象,而非你写的.py文件。
内容的提问来源于stack exchange,提问作者leili
相关产品推荐
相关产品推荐

