python sys.path返回模块搜索路径
sys.path
python标准库sys.path可以返回python模块的搜索查询的路径,初始化时,使用的是PYTHONPATH环境变量的值,为什么呢,参考下方什么是模块搜索路径的。
什么是模块搜索路径
(仅为个人理解,仅供参考)在python编程的时候,当需要用到某一些库,或者称为模块的时候,需要在python文件的开头导入该库或模块,比如import sys。在导入这个模块,或引入这个模块之后,调用该模块当中的函数或属性的时候,python就需要找到该模块文件,通过“找到该模块文件的路径”。如果模块的文件路径和当前调用该模块的文件不再同一个目录下,就需要在当前文件指定该模块文件的路径,比如“from xxx import yyy”。
sys.path实例代码
提示:如下代码运行输出于mac osx环境,与windows的路径格式有所不同:
>>> import sys
>>> sys.path
['', '/opt/anaconda3/lib/python37.zip', '/opt/anaconda3/lib/python3.7', '/opt/anaconda3/lib/python3.7/lib-dynload', '/opt/anaconda3/lib/python3.7/site-packages', '/opt/anaconda3/lib/python3.7/site-packages/aeosa']
>>> type(sys.path)
<class 'list'>
sys.path列表属性
如上代码的输出,sys.path的本质是一个python列表,因此具备了python列表list的诸多方法,比如append()、pop()、remove()等等来自定义python的模块搜索路径,比如下方的实例代码:
>>> sys.path.append('/Users/z')
>>> sys.path
['', '/opt/anaconda3/lib/python37.zip', '/opt/anaconda3/lib/python3.7', '/opt/anaconda3/lib/python3.7/lib-dynload', '/opt/anaconda3/lib/python3.7/site-packages', '/opt/anaconda3/lib/python3.7/site-packages/aeosa', '/Users/z']
>>> sys.path.remove('/Users/z')