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

Python跨目录模块导入实现:按指定方式完成多场景导入

Python项目导入配置实现方案

项目目录结构

/Document/office/Project/
├── config.py
├── app.py
├── src/
│   ├── abc.py
│   └── xyz.py
└── test/
    └── testcase.py

实现步骤

1. 将src和test目录标记为Python包

在src/和test/目录下分别创建空的__init__.py文件,让Python识别它们为可导入的包:

src/
├── __init__.py
├── abc.py
└── xyz.py
test/
├── __init__.py
└── testcase.py

2. 确保项目根目录在Python模块搜索路径中

Python会从sys.path列表中的路径查找模块,必须把项目根目录/Document/office/Project加入其中,有三种常用方式:

方式一:从项目根目录运行脚本

打开终端,切换到/Document/office/Project目录,再执行脚本:

  • 运行app.py:python app.py
  • 运行testcase.py:python test/testcase.py
    这种方式会自动将当前工作目录(根目录)加入sys.path,是最推荐的做法。

方式二:设置PYTHONPATH环境变量

通过环境变量永久或临时添加根目录到搜索路径:

  • Linux/macOS终端:
    export PYTHONPATH="/Document/office/Project:$PYTHONPATH"
    
  • Windows命令提示符(cmd):
    set PYTHONPATH=C:\Document\office\Project;%PYTHONPATH%
    
  • Windows PowerShell:
    $env:PYTHONPATH = "C:\Document\office\Project;$env:PYTHONPATH"
    

方式三:代码中临时添加路径(不推荐长期使用)

在需要导入config的文件(abc.py、xyz.py、testcase.py)开头添加以下代码,动态将根目录加入sys.path:

import sys
import os
# 获取当前文件的父目录的父目录(即项目根目录)
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if root_dir not in sys.path:
    sys.path.append(root_dir)

对应需求的导入代码

1. 在abc.py、xyz.py、testcase.py中导入config.py

直接使用以下代码即可:

import config

2. 在app.py中导入src.abc

直接使用以下代码:

import src.abc

3. 在test/testcase.py中导入abc(src下的abc模块)

推荐使用规范的包导入方式:

import src.abc

如果一定要用import abc,需要额外将src/目录加入sys.path,但这种方式可能引发模块命名冲突,不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:35:09