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

如何在不修改sys path的前提下测试上级目录中的main.py?

不修改sys.path前提下导入上级目录main.py的方法

你的项目目录结构如下:

|
|---test
|    |----test1.py
|    |----test2.py
|
|---alibrary
|    |--thelib.py
|
|--main.py

test1.py中通过import alibrary.thelib as thelib导入模块的方式能正常运行,是因为运行时项目根目录已经在Python的sys.path中。要在test2.py中不修改sys.path导入main.py的函数,按以下步骤操作:

  • 在项目根目录(即包含main.py、test、alibrary的目录)创建一个空的__init__.py文件,让Python将整个项目识别为可导入的包。
  • 在test2.py中使用绝对导入方式导入main.py中的函数,示例代码:
# 导入整个main模块
import main

# 或者直接导入需要测试的特定函数
from main import target_function
  • 运行test2.py时,必须从项目根目录执行,使用模块运行的方式:
python -m test.test2

这样操作的原理是:用-m参数运行模块时,Python会自动将当前工作目录(项目根目录)加入sys.path,结合根目录的__init__.py,就能直接识别并导入main模块,无需手动修改sys.path。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:20:36