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

如何从不同目录的Python文件导入函数?执行时遇模块未找到错误

解决Python跨目录导入模块找不到的问题

目录结构

Parent/
├── app.py
└── test/
    └── testFunc.py

报错原因

Python默认只会在当前执行目录、标准库路径以及sys.path里的路径查找模块,你的test目录没有被识别为可导入的Python包,且不在默认搜索路径中,因此出现模块找不到的错误。

解决方案

方案1:将test目录转为Python包

在Parent/test/目录下创建一个空的__init__.py文件,目录结构变为:

Parent/
├── app.py
└── test/
    ├── __init__.py
    └── testFunc.py

然后确保当前工作目录是Parent/,执行命令:

python app.py

此时from test.testFunc import *就能正常导入模块。

方案2:手动添加父目录到Python搜索路径

修改app.py的代码,在导入语句前添加代码,动态将Parent目录加入sys.path:

import sys
import os

# 获取app.py所在的Parent目录路径
parent_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(parent_dir)

from test.testFunc import *

print(isEligible('Shakya', 18))
print(testRound(4.5))

这种方法不需要创建额外文件,且不受执行时工作目录的限制,直接运行app.py即可。

方案3:使用相对导入(仅适用于包内运行)

如果将Parent作为一个包,可修改app.py的导入语句为相对导入:

from .test.testFunc import *

但这种方式不能直接执行app.py,需要在Parent的上级目录执行:

python -m Parent.app

同时Parent目录下也需要创建空的__init__.py文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:33:20