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

Python从父文件夹导入类报错:ModuleNotFoundError问题求助

解决Python类导入问题的具体步骤

你遇到的ModuleNotFoundError主要是两个原因:一是文件夹名称带空格(project Main),Python不允许模块名包含空格;二是导入的路径层级没处理对。下面给你两种解决办法:

方法一:重命名文件夹(最推荐,符合规范)

  • 把project Main改成不带空格的名称,比如project_main,这是Python模块命名的基本要求。
  • 在project_main和Folder_one这两个文件夹里,各新建一个空的__init__.py文件——这个文件是告诉Python:“这是一个可以导入的包目录”。
  • 在my_folder_one_file.py里选择合适的导入方式:
    1. 相对导入(适合包内部文件互相调用):
      from ..my_file import My_Class_1, My_class_2
      
      注意:用这种方式时,不能直接在Folder_one目录下运行python my_folder_one_file.py,得回到D盘根目录,用python -m project_main.Folder_one.my_folder_one_file来执行脚本。
    2. 绝对导入:
      先把D盘根目录加到Python的搜索路径里,再导入类:
      import sys
      sys.path.append('D:/')
      from project_main.my_file import My_Class_1, My_class_2
      

方法二:保留原文件夹名称(不推荐,易出问题)

如果不想改文件夹名,只能通过手动添加路径来绕开空格问题,代码如下:

import sys
sys.path.append('D:/project Main')
from my_file import My_Class_1, My_class_2

这种方式虽然能临时解决问题,但后续项目结构变动时很容易报错,还是优先用方法一。

另外提醒下:尽量别用import *的方式导入,明确写出要导入的类名,既能提升代码可读性,还能避免潜在的命名冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:40:28