一、前言
当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找:
- 在当前目录(即执行的Python脚本文件所在目录)下查找。
- 到PYTHONPATH(环境变量)下的每个目录中查找。
- 到Python的默认安装目录下查找。
以上个目录的具体位置保存在标准模块sys的sys.path变量中。可以通过以下代码输出具体的目录:
import sys
print(sys.path)
例如,执行上面代码,将显示如同所示结果:
如果倒入的模块不在上图的目录中,那么在导入模块时,将显示如下图异常:
注意: 使用import语句导入模块时,模块名是区分字母大小写的
二、临时添加目录到sys.path中
临时添加即在导入模块的Python文件中添加。例如,需要将"E:\program\Python\Code\demo"目录添加到sys.path中,可以使用下列代码:
import sys
sys.path.append("E:\program\Python\Code\demo")
print(sys.path)
例如,执行上面代码,将显示如同所示结果:
在上面的结果中,圈起来的字为新添加的目录。
说明: 通过该方法添加的目录只在执行当前文件的窗口中有效,窗口关闭后即失效。
三、增加.py文件添加目录到sys.path中(推荐)
在Python安装目录下的"Lib\site-packages"子目录中(例如,Python安装在"G:\Python\Python37\Lib\site-packages"),创建一个扩增名为.pth的文件,文件任意。这个创建一个mrpath.pth文件,在该文件中添加要导入模块所在的目录。例如,将模块目录"E:\program\Python\Code\demo"添加到mrpath.pth文件,添加后的代码如下:
# .pth文件是我创建的路径文件
E:\program\Python\Code\demo
注意: 创建.pth文件后,要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用。
四、在PYTHONPATH环境变量中添加目录到sys.path中
打开”环境变量“对话框,如果没有PYTHONPATH系统环境变量,则需要创建一个,否则直接选中PYTHONPATH变量,单击”编辑“按钮,并且在弹出的对话框的”变量值“文本中添加新的模块目录,目录之前使用逗号进行分隔。例如,创建系统环境变量PYTHONPATH,并指定模块所在目录为"E:\program\Python\Code\demo",效果如图所示:
注意: 在环境变量中添加模块目录后,需要重新到开要执行的导入模块的Python文件,否则新添加的目录不起作用。