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

如何正确导入Python模块并解决No module named报错问题

报错原因
  • 路径拼接使用硬编码的/,Windows系统下路径分隔符不匹配,导致project subfolder目录没有被正确加入Python的模块搜索路径
  • 若project subfolder目录下没有空的__init__.py文件,Python不会将该目录识别为合法的包目录,无法搜索到目录下的模块
  • 直接运行脚本时的工作目录与预期不符,也会导致相对路径计算错误,无法正确定位test.py的位置
修复方案

方案1:修正sys.path配置(最通用,适合直接运行脚本的场景)

  1. 首先在project subfolder目录下新建一个空的__init__.py文件,标记该目录为Python可识别的包目录
  2. 把file1.py中的路径配置代码替换为跨平台兼容的写法:
import os
import sys

# 获取当前file1.py所在的subfolder1目录的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 计算上一级的project subfolder目录的绝对路径,自动适配不同系统的路径分隔符
project_subfolder_dir = os.path.normpath(os.path.join(current_dir, ".."))
# 将目标目录加入模块搜索路径
sys.path.append(project_subfolder_dir)

import test as t

方案2:使用相对导入(适合作为项目模块运行的场景)

  1. 同样需要先在project subfolder、subfolder1目录下都新建空的__init__.py文件
  2. 在file1.py中直接写相对导入语句:
from .. import test as t
  1. 运行时需要退到最外层的Project folder目录,使用模块方式运行:
    python -m "project subfolder.subfolder1.file1"
注意事项
  • 建议修改目录命名规则,避免目录名中出现空格,比如将project subfolder改为project_subfolder,可以大幅减少路径识别相关的问题
  • 不需要将当前subfolder1目录加入sys.path,因为test.py不在该目录下,属于无效配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:06:05