【python报错】 ModuleNotFoundError: No module named 'X' 如何调用自己写的 moudle / python / .py 文件(同一项目中)

依然范特西╮ 提交于 2020-01-24 03:56:06

自己用 python 写项目,文件系统结构如下:

RL-for-Order-Workflow
RL-for-Order-Workflow\pySim
RL-for-Order-Workflow\pySim\test
RL-for-Order-Workflow\pySim\test\test.py
RL-for-Order-Workflow\pySim\entity
RL-for-Order-Workflow\pySim\entity\source.py
# RL-for-Order-Workflow\pySim\entity\source.py
def a(b):
    print(b)

# RL-for-Order-Workflow\pySim\test\test.py
from pySim.entity.source import *
if __name__ == "__main__":
    a(1)

在 entity 中写了个文件 source.py ,想在 test.py 调用,但是报错:

ModuleNotFoundError: No module named 'pySim'

在这里插入图片描述

在 pyCharm 中就没有这个问题,这因为 VS Code 并没有把项目的根目录加入到 path 中。

解决方案,把项目根目录加入到 path 中。

在 test.py (你要运行的 python 文件中)加入前四行代码:

import sys
import os
projectPath = os.path.abspath(os.path.join(os.getcwd()))
sys.path.append(projectPath)

from pySim.entity.source import *
if __name__ == "__main__":
    a(1)

即,把项目根目录加入到 path 中:

  • os.path.abspath(os.path.join(os.getcwd())) 用于提取项目根目录;
  • sys.path.append(projectPath) 用于把根目录加入到搜索路径中。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!