用过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在哪个目录下,在那个目录下加入你想要添加包的绝对路径