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

Python3.9存在__init__.py仍找不到模块,如何配置根路径导入规则

问题原因

Python搜索导入模块时会依次遍历sys.path中的所有路径,你直接运行boo/boo2/main.py时,Python默认会把当前执行脚本的所在目录/Users/okoo/Code/projectRoot/boo/boo2加入sys.path首位,项目根目录/Users/okoo/Code/projectRoot不在sys.path搜索范围内,因此无法识别boo作为顶层包,哪怕对应目录下存在__init__.py也无法完成导入。

根目录相对导入配置方法

以下是不同场景下的可行方案:

  • 临时测试场景:手动指定PYTHONPATH环境变量
    运行脚本前在命令行添加项目根目录到PYTHONPATH,示例命令(在项目根目录下执行):
    PYTHONPATH=$(pwd) python boo/boo2/main.py
    该方案无需修改代码,仅单次运行生效。

  • 入口脚本适配场景:动态添加根目录到sys.path
    在main.py所有导入语句的最开头添加以下代码,自动计算项目根目录并加入搜索路径:

    import sys
    from pathlib import Path
    # 按脚本所在层级向上跳转至项目根目录,此处main.py在boo/boo2下,向上跳3层到达根目录
    project_root = Path(__file__).parent.parent.parent.resolve()
    sys.path.insert(0, str(project_root))
    

    配置完成后即可正常使用根目录相对路径导入。

  • 开发环境长期使用方案:安装为开发模式包

    1. 在项目根目录下新建pyproject.toml配置文件,写入基础配置:
    [build-system]
    requires = ["setuptools>=61.0"]
    build-backend = "setuptools.build_meta"
    
    [project]
    name = "your_project"
    version = "0.1.0"
    
    1. 在项目根目录下执行命令:
      pip install -e .
      该命令会将项目根目录永久加入Python的可搜索路径,所有项目内的Python文件都可以直接使用根目录相对路径导入,无需额外配置。
  • IDE开发适配:标记源码根目录
    如果你使用PyCharm/VSCode等IDE开发,可以直接将项目根目录标记为「Sources Root」(PyCharm),或在VSCode的settings.json中配置python.analysis.extraPaths参数添加项目根目录,IDE运行代码时会自动将根目录加入sys.path,消除导入报错提示。

内容的提问来源于stack exchange,提问作者OLIVER.KOO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:18:04