【博主亲测】Python命令行运行报错ModuleNotFoundError: No module named ‘xxx‘

文章目录

问题描述

如果在Pycharm类似软件里不报错。但命令行python run.py,报错:ModuleNotFoundError: No module named 'xxx'

解决方案

大概率import模块的时候使用的是相对路径,只需将模块的 path 添加到 sys.path

假设目录结构如下:

Project
├─module1
│  └─main.py
└─module2
   └─a.py

我们在main.py中导入模块:

# main.py
from module2.a import *

那我们其实需要在 sys.path 中添加 module2 的路径:

# main.py
import sys
import os

sys.path.append(os.path.dirname(sys.path[0]))

from module2.a import *

我们来解释一下,sys.path[0]表示main.py的文件路径。

Project
├─module1
│ └─main.py
└─module2
└─a.py

os.path.dirname()表示上一级目录,所以sys.path.append(os.path.dirname(sys.path[0]))添加了 Project 目录,这时候自然能导入 module2

Project
├─module1
│ └─main.py
└─module2
└─a.py

猜你喜欢

转载自blog.csdn.net/ymzhu385/article/details/141720765