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

Python跨目录导入模块失败求助:特定目录结构下导入Automations模块

解决Python模块导入问题

目录结构回顾

- 根目录/
    - Milestone/
        - kk.py
    - Repeat_Modules/
        - __init__.py
        - Automations.py

错误原因分析

  1. 第一种导入错误:from Repeat_Modules import Automations
    直接运行kk.py时,Python的sys.path默认仅包含Milestone目录,而Repeat_Modules位于上级目录,因此Python无法定位到该模块。

  2. 第二种相对导入错误:from ..Repeat_Modules import Automations
    直接执行脚本文件时,该文件会被视为顶级模块(命名为__main__),Python不允许顶级模块使用相对导入语法——相对导入仅适用于包内部的模块引用场景。

可行解决方案

方案1:手动添加根目录到Python路径(最直接)

在kk.py开头添加以下代码,将项目根目录加入sys.path,让Python能找到Repeat_Modules:

import sys
import os

# 获取项目根目录(Milestone的上级目录)
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(root_dir)

# 现在可以正常导入
from Repeat_Modules import Automations

方案2:以包的形式运行脚本(推荐规范做法)

  1. 在项目根目录下创建空的__init__.py文件,将整个结构标记为Python包:
- 根目录/
    - __init__.py
    - Milestone/
        - kk.py
    - Repeat_Modules/
        - __init__.py
        - Automations.py
  1. 在根目录下,使用-m参数以模块形式运行kk.py:
python -m Milestone.kk

此时kk.py属于包的一部分,可正常使用相对导入:

from ..Repeat_Modules import Automations

方案3:通过环境变量指定Python路径

运行脚本前,将项目根目录添加到PYTHONPATH环境变量:

  • Linux/macOS:
    export PYTHONPATH=/path/to/你的项目根目录:$PYTHONPATH
    python Milestone/kk.py
    
  • Windows(命令行):
    set PYTHONPATH=C:\path\to\你的项目根目录;%PYTHONPATH%
    python Milestone\kk.py
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:32:47