在保存了文件的很长一点时间里,我们都没有使用文件的需求,偶尔需要用到包的话就要去查一下路径,这类的方法我们也介绍了不少,有的小伙伴会想要追求更快的查找方法。这里小编把查找路径的方法都进行展示,大家可以自由的选择,想要更快的查询路径方法就跟着小编一起往下看。
当你使用 import 导入一个包或模块时,Python 会去一些目录下查找,而这些目录是有优先级顺序的,正常人会使用 sys.path 查看。
>>> import sys >>> from pprint import pprint >>> pprint(sys.path) ['', '/usr/local/Python3.7/lib/python37.zip', '/usr/local/Python3.7/lib/python3.7', '/usr/local/Python3.7/lib/python3.7/lib-dynload', '/home/wangbm/.local/lib/python3.7/site-packages', '/usr/local/Python3.7/lib/python3.7/site-packages'] >>>
那有没有更快的方式呢?
我这有一种连 console 模式都不用进入的方法呢?
你可能会想到这种,但这本质上与上面并无区别
[wangbm@localhost ~]$ python -c "print('\n'.join(__import__('sys').path))" /usr/lib/python2.7/site-packages/pip-18.1-py2.7.egg /usr/lib/python2.7/site-packages/redis-3.0.1-py2.7.egg /usr/lib64/python27.zip /usr/lib64/python2.7 /usr/lib64/python2.7/plat-linux2 /usr/lib64/python2.7/lib-tk /usr/lib64/python2.7/lib-old /usr/lib64/python2.7/lib-dynload /home/wangbm/.local/lib/python2.7/site-packages /usr/lib64/python2.7/site-packages /usr/lib64/python2.7/site-packages/gtk-2.0 /usr/lib/python2.7/site-packages
这里我要介绍的是比上面两种都方便的多的方法,一行命令即可解决
[wangbm@localhost ~]$ python3 -m site sys.path = [ '/home/wangbm', '/usr/local/Python3.7/lib/python37.zip', '/usr/local/Python3.7/lib/python3.7', '/usr/local/Python3.7/lib/python3.7/lib-dynload', '/home/wangbm/.local/lib/python3.7/site-packages', '/usr/local/Python3.7/lib/python3.7/site-packages', ] USER_BASE: '/home/wangbm/.local' (exists) USER_SITE: '/home/wangbm/.local/lib/python3.7/site-packages' (exists) ENABLE_USER_SITE: True
从输出你可以发现,这个列的路径会比sys.path更全,它包含了用户环境的目录。
这里很多小伙伴会惊喜的发现,原来只需一行命令,就可以轻松用代码查看路径,相对于以往的sys.path方法不要好用太多了。聪明的小伙伴们已经把这三种方法,全部都保存下来啦,不同的大家都可以尝试。