python修改sys.path的三种方法
sys.path是一个列表,存放的是python搜索模块时可以搜索的路径,启动python脚本时,会将执行当前命令所在的目录添加到这个列表中,而且是在列表的最前面,正是因为这个操作,你才能在自己的项目里引用自己编写的模块,当模块名称与第三方模块或系统模块冲突时,优先引用项目里的模块。通常,sys.python里的内容如下所示:
>>> import sys
>>> sys.path
[”, ‘/root/.pyenv/versions/3.6.5/lib/python36.zip’, ‘/root/.pyenv/versions/3.6.5/lib/python3.6’, ‘/root/.pyenv/versions/3.6.5/lib/python3.6/lib-dynload’, ‘/root/.pyenv/versions/3.6.5/lib/python3.6/site-packages’]
这里,你重点关注site-packages, 我们安装的第三方库和模块都放在了这里。将sys.path设计为一个可变的列表,而不是元组,就是考虑到了开发人员有很强的动机和需要去修改模块的搜索路径和顺序。
方法1,直接修改sys.path列表
设想,如果你的系统允许用户提交自定义的python脚本,那么你可以为此专门创建一个目录用于存放这些脚本,并将这个目录加入到sys.path中,这样,在你的系统里,你可以像引用其他模块一样去引用用户上传的python脚本来执行他们,这就是本文所提到的修改sys.path的三种方法中的一个,你只需要使用sys.path.append方法将目录添加