模块

作者: 蝉时雨丶 | 来源:发表于2020-09-14 10:22 被阅读0次

模块搜索目录

模块搜索目录

当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找:
(1)在当前目录(即执行的Python脚本文件所在目录)查找。
(2)到PYTHONPATH(环境变量)下的每个目录中查找
(3)到Python的默认安装目录下查找。
以上各个目录的具体位置保存在标准模块sys的sys.path变量中。可以通过以下代码输出具体的
目录:

import sys
print(sys.path)
['', 'C:\Users\39713\AppData\Local\Programs\Python\Python37\Lib\idlelib',
'C:\Users\39713\AppData\Local\Programs\Python\Python37\python37.zip',
'C:\Users\39713\AppData\Local\Programs\Python\Python37\DLLs',
'C:\Users\39713\AppData\Local\Programs\Python\Python37\lib',
'C:\Users\39713\AppData\Local\Programs\Python\Python37',
'C:\Users\39713\AppData\Local\Programs\Python\Python37\lib\site-packages']

如果要导入的模块不在所示的目录中,那么在导入模块时,将抛出异常。

注意:使用Import语句导入模块时,模块名是区分字母大小写的。

这时我们可以通过以下3种方式添加到指定的目录到sys.path中。
1.临时添加
临时添加即在导入模块的Python文件种添加,例如,需要将"C:\Users\39713\Desktop\lzx\PY练习"目录添加到sys.path中,可以
使用下面的代码:

import sys
sys.path.append('C:/Users/39713/Desktop/lzx/PY练习')
sys.path
['', 'C:\Users\39713\AppData\Local\Programs\Python\Python37\Lib\idlelib',
'C:\Users\39713\AppData\Local\Programs\Python\Python37\python37.zip',
'C:\Users\39713\AppData\Local\Programs\Python\Python37\DLLs',
'C:\Users\39713\AppData\Local\Programs\Python\Python37\lib',
'C:\Users\39713\AppData\Local\Programs\Python\Python37',
'C:\Users\39713\AppData\Local\Programs\Python\Python37\lib\site-packages',
'C:/Users/39713/Desktop/lzx/PY练习']

此时,输出sys.path即可看到新添加的目录。

说明:通过该方法添加的目录只在执行当前文件的窗口中有效,窗口关闭后即失效。

2.增加.pth文件(推荐)
在Python安装目录下的"Lib\site-packages"子目录中,创建一个扩展名为.pth的文件,文件名任
意。这里创建一个mrpath.pth文件,在该文件中添加要导入模块所在的目录。例如,将模块目录
'C:/Users/39713/Desktop/lzx/PY练习'添加到mrpath.pth文件,在这个pth文件里加入以下内容:
C:\Users\39713\Desktop\lzx\PY练习

注意:创建.pth文件后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起
作用。

说明:该方法3.7版本以后有效。

3.在PYTHONPATH环境变量中添加
打开"环境变量"对话框,如果没有PYTHONPATH系统环境变量,则需要先创建一个,否则直接
选中PYTHONPATH变量,单击"编辑"按钮,并且在弹出对话框的"变量值"文本中添加新的模块
目录,目录之前使用逗号进行分隔。例如,创建系统环境变量PYTHONPATH,并指定模块所在
目录为C:\Users\39713\Desktop\lzx\PY练习。

注意:环境变量中添加模块目录后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起
作用。

相关文章

  • python常用模块!!

    os模块: stat模块: sys模块: hashlib,md5模块: random模块: types模块: at...

  • 2018-08-19

    Angular 2 技能图谱 模块 自定义模块 根模块 特性模块 共享模块 核心模块 内置模块 Applicati...

  • 【时间管理100讲】精髓全在这里啦

    理论模块 精力管理。 行动管理。 学习模块。 高空模块。 反思模块。 运动模块。 阅读模块。 旅行模块。 人际关系...

  • python基础学习(三)

    常用模块 String模块 数学模块 随机模块 OS模块 os.path模块 re模块 常用函数及操作 列表操作 ...

  • day10-异常处理和pygame显示

    一、异常处理 1.模块 导入模块(自定义模块,第三方模块)import 模块 ---->模块.内容from 模块 ...

  • 重点知识复习(异常处理)

    1.模块 导入模块(自定义模块,第三方模块,系统其他模块)import 模块 ----> 模块.内容from 模...

  • Python常用模块

    Python常用模块之time模块 Python常用模块之os模块 Python常用模块之sys模块 Python...

  • nodejs-模块

    nodejs模块 一、nodejs模块分类 1.核心模块 Core Module、内置模块、原生模块 fs模块 p...

  • Python不同网络模块网页源代码的获取

    requests模块 或者使用 selenium模块 BeautifulSoup模块 urllib模块

  • day10 pygame

    一、异常处理1.模块导入模块(自定义模块,第三方模块)import 模块 ---->模块.内容from 模块 im...

网友评论

      本文标题:模块

      本文链接:https://www.haomeiwen.com/subject/kfgaektx.html