问题描述

现有如下文件结构:

1
2
3
4
5
- simulator
- utils
- constant.py
- utility.py
- simulator.py
  • simulator.py 中,使用 from utils import utilities
  • utility.py 中,使用 import constant as const

simulator 为工作目录,在命令行运行 python simulator.py,会出现报错:

1
2
3
4
5
6
Traceback (most recent call last):
File "F:\laboratory\satellite computing\simulator\simulator.py", line 2, in <module>
from utils import utilities
File "F:\laboratory\satellite computing\simulator\utils\utilities.py", line 2, in <module>
import constant as const
ModuleNotFoundError: No module named 'constant'

解决方法

出现问题的原因是,python 解释器在运行 utility.py 文件时,找不到 constant.py 文件。因为运行代码的工作目录为 simulator 文件夹,因此解释器搜索的目录中不会包含 utils 文件夹。

此时只需要在 simulator.py 代码前加上

1
2
3
4
5
import sys
import os
current_dir = os.path.dirname(os.path.realpath(__file__))
utils_dir = os.path.join(current_dir, "utils")
sys.path.append(utils_dir)

utils 文件夹加入搜索目录即可。