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

如何在不使用sys模块的情况下,从Planes.py导入Tanks下的Tank.py?

无需sys模块的Tank.py导入方案

先明确你的项目目录结构:

Main/
├── Main.py
├── Tanks/
│   ├── __init__.py
│   └── Tank.py
├── BlueTanks/
│   ├── __init__.py
│   └── BlueTank.py
└── Planes/
    └── Planes.py

方法1:以Main为顶层包用绝对导入

如果代码运行时,工作目录是Main的父目录(即能直接看到Main文件夹的目录),直接在Planes.py里写:

from Main.Tanks.Tank import 你要导入的类或函数

Python会顺着顶层包Main找到Tank模块。

方法2:用相对导入(需以包形式运行)

想避免写全路径的话,可在Planes.py里用相对导入:

from ..Tanks.Tank import 你要导入的类或函数

注意:这种方式不能直接双击运行Planes.py,必须从Main的父目录用模块方式启动:

python -m Main.Planes.Planes

此时Planes.py被当作Main包的一部分,相对路径才能生效。

方法3:从Main.py作为入口启动

把Main.py作为项目启动文件,运行它时Python会自动把Main的父目录加入搜索路径。这时在Planes.py里直接写:

from Tanks.Tank import 你要导入的类或函数

就能正常导入,因为Tanks包此时在Python的搜索路径范围内。

方法4:通过环境变量指定搜索路径

运行代码前,把Main的父目录添加到PYTHONPATH环境变量中:

  • Windows命令行:
set PYTHONPATH=你的Main父目录路径;%PYTHONPATH%
  • Linux/macOS终端:
export PYTHONPATH=你的Main父目录路径:$PYTHONPATH

设置后,不管在哪运行Planes.py,都能用方法1里的绝对导入语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:20:27