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

Python跨目录导入模块:如何在main.py中调用check.py的函数?

Python跨目录导入方案

首先明确你的目录结构(修正层级缩进以确保路径清晰):

arc_panther/
├── MonteCarlo/
│   └── main.py
│   
└── Supporting_Files/
    └── moduler/
        └── DataExtraction/
            └── check.py

以下是几种可行的导入方式:

方法1:临时添加根目录到sys.path

在main.py中通过代码将项目根目录(arc_panther)添加到Python的模块搜索路径,即可直接导入目标模块:

import sys
import os

# 获取当前文件的父目录的父目录(即arc_panther根目录)
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(root_dir)

# 导入check.py中的目标函数,替换成你实际需要的函数名
from Supporting_Files.moduler.DataExtraction.check import target_function

方法2:将项目作为Python包(使用__init__.py)

在每个需要被识别为包的文件夹下添加空的__init__.py文件,目录结构变为:

arc_panther/
├── __init__.py
├── MonteCarlo/
│   ├── __init__.py
│   └── main.py
│   
└── Supporting_Files/
    ├── __init__.py
    └── moduler/
        ├── __init__.py
        └── DataExtraction/
            ├── __init__.py
            └── check.py

之后有两种导入方式:

  • 绝对导入(推荐,兼容性更好):
    from Supporting_Files.moduler.DataExtraction.check import target_function
    
  • 相对导入(需注意运行方式):
    from ..Supporting_Files.moduler.DataExtraction.check import target_function
    
    使用相对导入时,不能直接运行main.py,需要从arc_panther的上级目录执行:
    python -m arc_panther.MonteCarlo.main
    

方法3:设置PYTHONPATH环境变量

通过系统环境变量将arc_panther目录添加到Python的模块搜索路径,无需修改代码:

  • Linux/macOS:
    export PYTHONPATH="/绝对路径/arc_panther:$PYTHONPATH"
    
  • Windows(CMD):
    set PYTHONPATH=C:\绝对路径\arc_panther;%PYTHONPATH%
    
  • Windows(PowerShell):
    $env:PYTHONPATH = "C:\绝对路径\arc_panther;" + $env:PYTHONPATH
    

设置完成后,直接在main.py中使用绝对导入即可:

from Supporting_Files.moduler.DataExtraction.check import target_function

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:33:01