在Pycharm等IDE中执行Python程序,默认设置启动路径为项目根目录,所以直接执行是没有问题的。但是在cmd命令行窗口中执行程序,所在路径是Python的搜索路径,如果涉及到import引用就会报类似 ImportError: No module named xxx 这样的错误。
出现这种找不到模块问题的解决方法十分简单,在报错的模块中添加:

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

这样就可以解决了。一定要注意自己的目录结构,如果不成功就打印sys.path查看目录结构。

Python import搜索的路径顺序如下所示:

Python 标准库模块 -> Python 第三方模块 -> 应用程序自定义模块

import的搜索顺序:首先判断这个module是不是built-in即内建模块,如果是则引入内建模块,如果不是则在一个称为sys.path的list中寻找。sys.path在python脚本执行时动态生成,包括以下3个部分:

1、脚本执行的位置,即当前路径
2、环境变量中的PYTHONPATH, 即.bash_profilec.
3、安装python时的依赖位置