Python中模块搜索目录


一、前言

  当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找:

  1. 在当前目录(即执行的Python脚本文件所在目录)下查找。
  2. 到PYTHONPATH(环境变量)下的每个目录中查找。
  3. 到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文件,否则新添加的目录不起作用。


猜你喜欢

转载自blog.csdn.net/weixin_45191386/article/details/124597206
今日推荐