python 模块搜索路径

发布时间:2024年01月06日

前言

? ? 当我们import os的时候,Python解释器去哪找os模块呢?如果多处都有os模块,选择哪个os模块呢?

去哪找os模块?

? ? Python解释器不是很神奇,它会从以下2个地方找os模块

1、内置模块

sys.builtin_module_names会返回所有的内置模块

土办法:也可以利用内置属性__path__或者__file__,一般该属性有值的都不是内置模块?

2、sys.path属性中的所有目录中,是个list,会有很多个目录

sys.path,由哪些目录组成?

  • 执行脚本程序的当前工作目录
  • PYTHONPATH?环境变量,是个包含所有目录名称的列表,和shell变量?PATH?有一样的语法
  • python解释器安装的默认设置,标准库目录在此

查找搜索路径过程

import baby

1、同名的内置模块(有些模块并不在标准库目录中,属于内置模块,比如sys模块,用c语言写的……)

2、从?sys.path?所有的目录列表中,逐个查找每个目录,查找名为baby的模块,不一定是.py文件

没有找到模块怎么办?

1、没有找到,会抛出ImportError

2、找到的模块本身异常,也会抛出ImportError

最后说下模块分类

1、内置模块

sys.builtin_module_names会返回所有的内置模块

2、标准库模块

包括内置模块

标准库模块位于Python安装目录下的`Lib`文件夹中

3、第三方模块

一般都是通过pip install xx 安装的模块

4、自己写的模块

你自己写的.py模块

总结-再也不怕找不到模块了吧

? ? python解释器查找模块的过程,如果能熟练掌握的情况,你就再也不怕ImportError这个讨厌的错误,如果大家不理解,建议再读一遍,同时作以下练习,看看模块搜索路径都有,你要找的模块在不在这些目录中呢?

import sys

print(sys.path)

文章来源:https://blog.csdn.net/cadi2011/article/details/127539686
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。