导包和库的底层逻辑

用过python的小伙伴相信对import这个语句都不陌生

经常性的大家就会遇到 No module这样的错误,不过大多数情况都是包没有正确的安装所引起的,但有些时候,在导入自己写的模块或者包的时候也会出现这样的情况。

通常这个时候,大家就会去网上拿着报错提醒去搜啊,往往一个复制就完事了,但是大家也没有思考过为什么会报错,为什么加了行代码或者文件后,又能解决了。知其然不够,还得知其所以然。

在这里,我会给大家详细的讲解,究竟在import之后发生了什么!

在如今的高级语言中,代码是由一个个底层函数构建而成的。import就是这样一个函数。

在执行import XXX时,import会从三个方面去查找XXX

1、sys.path,这个是包含了系统的路径的列表,import会从这个列表中逐个去查找是否有你需要的包或者库。既然是列表,那就意味可以通过列表的方式进行添加和删除。这个是临时的修改。

2、PATHPATH环境变量,也可以理解为一个包含着指导import去哪里找包和模块的目录,这个需要去系统的环境变量中去配置。永久性更改

3、pth文件,在import在查找已知的site-package时,会将该文件总所包含的路径加入自己后面将要查找的路径中。永久性更改

import site
print(site.getsitepackages())#查看site-package在哪个目录下,在那个目录下加入你想要添加包的绝对路径

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值