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

Python跨目录导入模块时免修改子模块导入路径的方案

可行方案

无需修改b.py及folder1目录下任何文件的导入语句,仅需在a.ipynb最顶部、所有导入folder1相关模块的代码之前,添加以下3行代码即可:

import sys
import os
sys.path.insert(0, os.path.abspath("./folder1"))

原理说明

Python执行导入操作时,会严格按照sys.path列表中存储的路径顺序查找目标模块:

  • 上述代码将folder1的绝对路径插入到模块搜索路径的最高优先级位置
  • 当b.py执行from c import something时,Python会优先进入folder1目录查找,直接匹配到同目录下的c.py
  • 当b.py执行from folder2.d import something时,同样会在folder1目录下找到folder2子目录,进而定位到d.py
  • 该操作本质是还原了目录调整前,b.py视角下的模块搜索环境,和之前a、b同目录时的导入逻辑完全一致

注意事项

只要a.ipynb所在的根目录下不存在和c.py、folder2重名的文件/文件夹,该方案就不会出现导入冲突。如果存在重名,因为我们用insert(0)把folder1路径放到了搜索列表最前面,Python也会优先加载folder1下的对应文件,不会影响原有逻辑。

如果运行Notebook时手动切换过工作目录,把代码里的"./folder1"替换成folder1文件夹在你设备上的实际绝对路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:48:53