
一种语言要使用到外部库(模块) 时必然会涉及到从哪里以及按何顺序加载依赖,就像 LD_LIBRARY_PATH, CLASSPATH 那样,Python 也有其默认的模块搜索顺序, 依序找到想要的模块即停止。Python 中 sys.path
返回的列表包含了模块搜索的顺序,我们可以程序中修改该列表,或用 PYTHONPATH
环境变量前插路径,甚至是用 .pth
文件来附加路径。
简单的,可以执行命令 python3 -c "import sys; print(str(sys.path).replace(',', '\n'))"
来查看 python3 交互 shell 下的模块搜索路径,类似结果如下:
[''
'/usr/lib/python36.zip'
'/usr/lib/python3.6'
'/usr/lib/python3.6/lib-dynload'
'/home/yanbin/.local/lib/python3.6/site-packages'
'/usr/local/lib/python3.6/dist-packages'
'/usr/lib/python3/dist-packages'
'/usr/lib/python3.6/dist-packages']
注意,第一个元素是个空字符串,代表进入 python3 shell 时的当前目录。
如果在通过一个 py 脚本文件来打印 sys.path
的话显示稍微有所差异。比如在目录 /home/yanbin/Developers/
下创建 test.py
文件,内容为 阅读全文 >>