欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自己写的python模块,在pycharm中执行时可以正常import,在控制台执行时报错 ModuleNotFoundError: No module named ‘’

程序员文章站 2022-05-10 17:18:02
...

1. 问题描述:

自己定义的python模块,在PyCharm中执行时可以正常import,但是在控制台中执行时报错 ModuleNotFoundError: No module named ‘XXX’

2. 问题分析:

  • 首先,在控制台中执行python脚本时提示找不到某个模块,则说明程序在执行时,sys.path中未包含该模块的所在目录或者该模块的父目录

什么是sys.path?

sys.path是一个list,是python脚本执行时的一个环境变量,里面存放该脚本所有可导入模块的所在目录,包括内建模块所在目录,第三方模块所在目录,自定义模块所在目录

注意:如果你未对sys.path做任何改动时,在自定义模块所在目录那里,只会包含该python脚本的第一及父目录,这里也说明,报错的根本原因在于要import的模块跟执行脚本未在同一个目录下

  • 同样的python脚本,在控制台中报错,为什么在PyCharm中可以正常执行?

因为PyCharm中,可以在Settings中可视化的修改Sources,相当于修改了sys.path,所以程序知道从哪里找到自定义模块

3. 问题解决:

找到自定义模块所在目录 [或者任意深度的父目录]

# 这段代码要放在所有其他import代码之前 
import sys
sys.path.append('自定义模块所在目录')
相关标签: python python bug