Q-Logo 我的学习笔记分享

Python 命令行运行py文件报错ModuleNotFoundError: No module named 'XXX'

在命令行中直接通过 python xxxx.py 的方式运行py 文件时,如果py 文件中使用了import 导入自己的其他模块,就会报错 ModuleNotFoundError: No module named 'XX' 。这是因为Python 的搜索路径中找不到要导入的py文件。

解决的办法有两个。

一是设置 PYTHONPATH 环境变量,将自己的项目目录加入到其中,如果没有就创建一个。不同操作系统设置方式会有区别,可针对自己用的操作系统自行搜索怎样设置环境变量。

二是在报错的py文件中,通过sys、os等模块将需要添加的路径追加到sys.path 中,例如,用下面的方式将报错文件的父目录追加到sys.path 中

import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

这样就可以让Python 找到需要的模块了。

当然,如果使用IDE 来维护Python 项目,一般不需要自己操心这些,IDE 会自动将项目目录添加到环境变量中。