【Python】导入模块的搜索顺序及查看方法

本文介绍了当Python程序抛出ModuleNotFoundError时,可能的原因及Python查找模块的顺序,包括内存、内置模块、sys.path、标准库和第三方库。同时提供了多种查看已安装模块的方法,如pydoc、help()、sys.modules和pip命令。
摘要由CSDN通过智能技术生成
ModuleNotFoundError: No module named

上边的这个错误,可能是Python初学者在刚开始试图写一些复杂一点的Python程序时经常遇到的错误。 找不到模块~
这篇文章的目的,就是为了简要说明Python包的引用机制。以及列举这些包的一些方法。

1 Python解释器查找包(模块)的顺序:

  1. 内存(模块缓存)
  2. 内置模块built-in module(例如: sys、os,可通过sys.builtin_module_names查看)
  3. sys.path(环境变量中)
    sys.path列表中index:0(第一个元素),为被执行python文件所在目录,优先级最高
  4. 标准库(可通过sys.modules查看)
  5. pth 文件(Python会寻找.pth文件,然后将文件里路径加入sys.path) 这个文件很有用,稍后会有一篇文章专门介绍.pth文件
  6. 第三方库(你pip install的库)

2 查看模块

2.1 方法0. 仅查看内部方法

@tdouya.learning.timer_verbose  
def show_modules():  
    return sys.builtin_module_names # 就这句

2.2 方法1. 使用shell命令行

$ pydoc modules

2.3 方法2. Python控制台使用help()方法查看

>>> help('modules')

2.4 方法3. 通过sys模块查看

>>> import sys
>>> sys.modules.keys()

2.5 方法4. 通过pip查看

2.5.1 直接在shell控制台
$ pip list
$ pip freeze
2.5.2 通过程序(来源资料,实测无法执行)
import pip  
  
installed_packages = pip.get_installed_distributions()  # pip.get_installed_distributions 此方法不存在
installed_packages_list = sorted(["%s==%s" % (i.key, i.version) for i in installed_packages])  
print(installed_packages_list)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田辛 | 田豆芽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值