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

如何从父目录导入Python类或函数?导入报错求解

Python模块导入问题解答

为什么from src.api.test import test_func无法正常导入?

Python查找模块时,只会在sys.path列表中的目录里搜索。当你在src/config/config.py中使用这个导入语句时,默认情况下sys.path包含的是src/config/目录(因为当前运行的脚本位于此目录),而src目录并不在sys.path的搜索范围内,所以Python找不到src.api这个模块,从而抛出ModuleNotFoundError。

无需sys.path.append("../")的导入方法

方法1:使用相对导入

在config.py中改用相对导入的写法:

from ..api.test import test_func

注意:这种写法要求config.py必须作为src包的一部分被导入,不能直接运行config.py(比如不能在src/config/目录下执行python config.py),否则会触发ValueError: attempted relative import in non-package错误。正确的使用方式是从项目根目录启动脚本,例如执行python src/app.py,通过app.py来导入config.config。

方法2:设置PYTHONPATH环境变量

将包含src目录的项目根目录添加到PYTHONPATH环境变量中:

  • Windows命令行:
    set PYTHONPATH=你的项目根目录路径;%PYTHONPATH%
    
  • Linux/macOS终端:
    export PYTHONPATH=/你的项目根目录路径:$PYTHONPATH
    

设置完成后,Python会将该目录加入模块搜索路径,此时你在config.py中就能直接使用from src.api.test import test_func完成导入。

方法3:将src转为可安装包

在项目根目录下创建pyproject.toml(或setup.py),将src目录声明为Python包,然后执行开发模式安装:

pip install -e .

安装后,src会被加入Python的全局模块搜索路径,无论你在哪个目录运行脚本,都能直接使用from src.api.test import test_func进行导入。

内容的提问来源于stack exchange,提问作者pl-jay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:45:39