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

已添加路径至sys.path仍遇ModuleNotFoundError问题求助

解决Python模块导入错误:ModuleNotFoundError: No module named 'folder2'

错误原因

你当前将folder2目录本身添加到了sys.path,但import folder2.test1的写法要求Python能在sys.path中找到包含folder2的父目录(即modules/)。现在Python会在folder2目录下查找folder2子文件夹,自然找不到,因此抛出错误。

解决方案

方案1:修改sys.path指向modules目录,保留原导入语句

调整module_dir的指向,让sys.path包含modules/(folder1和folder2的共同父目录),这样Python就能识别folder2作为合法包:

# main.py
import sys, pathlib

# 指向folder1和folder2的共同父目录modules/
module_dir = pathlib.Path(__file__).parents[1].resolve()
sys.path.insert(1, str(module_dir))

import folder2.test1 as test

test.hello()

方案2:直接导入test1模块(适配当前sys.path设置)

既然已经把folder2目录加入sys.path,Python可以直接在该目录下找到test1.py,因此直接导入test1即可:

# main.py
import sys, pathlib

module_dir = pathlib.Path(__file__).parents[1].joinpath("folder2").resolve()
sys.path.insert(1, str(module_dir))

import test1 as test

test.hello()

补充:使用相对导入(需以包方式运行)

如果不想修改sys.path,可以把modules作为包,用相对导入,但需要从modules目录外运行脚本(比如执行python -m modules.folder1.main),修改main.py的导入语句:

# main.py
from ..folder2 import test1 as test

test.hello()

内容的提问来源于stack exchange,提问作者Michael Angelo Hernandez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:47:07