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

如何在Automate_Repertory中成功调用Load_Repertory的main()函数?

解决Python跨目录模块导入问题(Windows 11 + Python 3.13)

先明确你的项目结构:

Project_Repertory/
├─ Load_Repertory/
│  ├─ load_functions.py
│  └─ main.py
└─ Automate_Repertory/
   └─ main.py

以下是几种可行的解决方案:

方法1:在代码中动态添加项目根目录到Python路径

这是快速调试的直接方案,在Automate_Repertory/main.py中添加代码:

import sys
from pathlib import Path

# 获取项目根目录(Project_Repertory)的绝对路径
project_root = Path(__file__).parent.parent
sys.path.append(str(project_root))

# 正常导入并调用目标函数
from Load_Repertory.main import main
main()

原理:通过Path(__file__)定位当前脚本路径,两次向上导航到项目根目录,将其加入Python的模块搜索路径sys.path,让Python能识别Load_Repertory模块。

方法2:设置PYTHONPATH环境变量(终端级配置)

不想修改代码的话,可在运行脚本前,在Windows终端中配置环境变量:

PowerShell命令:

$env:PYTHONPATH = "C:\你的绝对路径\Project_Repertory"
python main.py

CMD命令:

set PYTHONPATH=C:\你的绝对路径\Project_Repertory
python main.py

原理:PYTHONPATH是Python内置的模块搜索路径变量,设置后无论终端在哪个子目录,都能找到根目录下的模块。

方法3:将Load_Repertory转为本地可安装包(推荐生产/长期场景)

适合Airflow这类需要稳定部署的场景,彻底解决路径依赖:

  1. 在Project_Repertory目录下创建pyproject.toml文件:
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "load_repertory"
version = "0.1.0"
packages = ["Load_Repertory"]
  1. 进入Project_Repertory目录,运行本地安装命令:
pip install -e .
  1. 之后无论在哪个目录,都可直接导入:
from Load_Repertory.main import main
main()

原理:通过pip install -e以可编辑模式安装本地包,Python会全局识别该包,消除路径问题。

附带解决Load_Repertory内部导入报错

Load_Repertory/main.py中from load_functions import function1报错,是因为导入路径错误,可改为以下两种方式之一:

  • 相对导入(仅包内部使用):
from .load_functions import function1
  • 绝对导入(通用场景):
from Load_Repertory.load_functions import function1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:36:06