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

Python如何无需使用-m或sys.path操作从同级文件夹导入模块

Python 3 同级文件夹模块导入解决方案

针对你给出的项目结构,以下是两种适配Python 3.3+版本的可行方案:

方案1:模块式运行(无代码侵入,官方推荐)

  • 第一步:在folder1/script1.py中直接使用以项目根路径为基准的绝对导入:
# script1.py 开头写入
from folder2.script2 import 你需要调用的函数名
  • 第二步:执行脚本时不要进入folder1目录直接运行,切换到项目根目录IMPORTS/下,使用模块参数运行:
python -m folder1.script1

方案2:手动添加项目根到模块搜索路径(支持直接运行script1.py)

如果需要直接进入folder1目录执行python script1.py,可以在script1.py最开头加入路径配置代码:

import sys
from pathlib import Path

# 定位到项目根目录IMPORTS并加入模块搜索路径
sys.path.append(str(Path(__file__).parent.parent.resolve()))

# 之后就可以正常导入
from folder2.script2 import 你需要调用的函数名

原理解释

Python 3.3之后取消了隐式相对导入,直接运行单个脚本时,默认会将脚本所在的文件夹加入模块搜索路径,而非项目根目录。你之前找到的旧方案大多依赖Python2或早期Python3的隐式导入规则,因此失效。
你项目中的__init__.py文件在Python3.3+版本中可以保留也可以删除,不影响导入逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:36:09