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

Python跨目录导入模块报No module named 'python_ins'如何解决

导入失败的核心原因

__init__.py 仅用于将对应目录标记为Python可识别的包,不会自动修改Python的模块搜索逻辑,报错本质是模块搜索路径和你的包结构不匹配:

  • 你进入folder2目录直接执行python main.py时,Python会默认把「当前运行脚本所在的目录」,也就是 /Users/my.name/temp/python_ins/folder2/ 加入模块搜索路径列表sys.path
  • 你写的导入语句from python_ins.folder1 import module需要Python定位到顶层包python_ins,但这个包实际存放在/Users/my.name/temp/路径下,该路径根本不在当前的sys.path搜索范围内,自然会抛出找不到模块的错误。
无需修改代码、无需手动改sys.path的解决方法

直接退到python_ins文件夹的父级目录(也就是/Users/my.name/temp/),用模块模式运行脚本即可,不要进入folder2直接执行py文件:

cd /Users/my.name/temp
python -m python_ins.folder2.main

这种运行方式下,Python会自动把你执行命令时所在的temp目录加入搜索路径,刚好能找到python_ins顶层包,导入逻辑可以正常生效。

常见误区:很多人以为只要目录里放了__init__.py,Python就会自动向上递归识别所有层级的包,实际上__init__.py只是包的身份标记,Python只会在sys.path已列出的目录里查找对应名称的包/模块,不在搜索路径里的内容,就算目录结构完全合规也识别不到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:57:23