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

如何从scripts_for_testing目录引用同级的py_lopa开发模块?

解决测试脚本移入子目录后无法引用py_lopa模块的问题

方法一:动态添加模块搜索路径

在每个测试脚本开头加入一段代码,把src_code目录(py_lopa和scripts_for_testing的共同上级)加入Python的模块搜索路径,原有导入语句可以完全保留:

import sys
from pathlib import Path

# 获取当前脚本所在目录的上级目录(即src_code)
src_dir = Path(__file__).parent.parent
sys.path.append(str(src_dir))

# 原有导入语句无需修改
from py_lopa.model_interface import Model_Interface
from py_lopa.data.tests_enum import Tests_Enum
from py_lopa.data.tables import Tables

这种方式不用调整项目结构或运行命令,适合开发阶段快速适配。

方法二:使用相对导入(需调整运行方式)

给scripts_for_testing目录添加空的__init__.py文件,将其标记为Python包,然后修改测试脚本的导入语句为相对路径形式:

from ..py_lopa.model_interface import Model_Interface
from ..py_lopa.data.tests_enum import Tests_Enum
from ..py_lopa.data.tables import Tables

注意:使用相对导入时,不能直接在scripts_for_testing目录下运行脚本,需要从src_code的上级目录执行命令,例如:

python -m src_code.scripts_for_testing.test_script_001

这种方式更符合Python包结构规范,但需要改变脚本的运行方式。

方法三:将py_lopa安装为可编辑模式

在src_code目录下创建配置文件,通过pip把模块安装为可编辑模式,这样无论测试脚本放在哪里,都能直接导入py_lopa。

  1. 在src_code目录下创建setup.py文件:
from setuptools import setup, find_packages

setup(
    name="py_lopa",
    version="0.1.0",
    packages=find_packages()
)
  1. 终端进入src_code目录,执行命令:
pip install -e .

安装完成后,测试脚本里的原有导入语句可以完全保留,直接运行脚本即可,无需额外修改路径。这种方式适合长期开发,同时也为后续模块发布做好准备。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:12:19