Python中如何解决引用父级目录中的模块报错问题

目录结构:
– src
|-- mod1.py
|-- mod2
| |-- mod2.py
|-- sub
| |-- test2.py
|-- test1.py

test2.py 中导入模块 mod2 的调用方式如下:
import sys
sys.path.append("…")
from mod2.mod2 import *

运行后报错:
Traceback (most recent call last):
File “test2.py”, line 3, in <module>
from mod2.mod2 import *
ImportError: No module named mod2

python 版本 2.6.6

找了一些资料没有查到跟我一样的问题,求大家帮忙看下是哪里的问题,多谢。
Python中如何解决引用父级目录中的模块报错问题


5 回复

在Python中导入父级目录模块报错,通常是因为Python解释器找不到模块路径。最直接的解决方案是修改sys.path

假设你的项目结构如下:

project/
├── parent_module.py
└── subfolder/
    └── current_script.py

current_script.py中需要导入parent_module.py,可以这样操作:

import sys
import os

# 获取当前文件所在目录的父目录
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 将父目录添加到Python路径
sys.path.insert(0, parent_dir)

# 现在可以导入父目录中的模块了
import parent_module

另一种更规范的做法是使用相对导入(如果是在包内):

from .. import parent_module

但这要求你的目录是一个Python包(包含__init__.py文件),并且需要在包内执行。

如果项目结构更复杂,建议考虑将项目根目录添加到PYTHONPATH环境变量,或者在IDE中设置源根目录。

总结:修改sys.path是最快的方法。

目测 1L 说的对,如果你没有那个文件的话

回复一楼,mod2 目录里面有__init__.py 这个文件

刚试了一下,如果在 test1.py 中导入 mod2 模块就可以正常运行。。。

回到顶部