python sys os 区别_sys.path和os.environ['PATH']啥区别?

sys.path是python package的加载目录,比如说定义flask从哪个目录加载。

而PATH是环境变量,是系统自定义的,不管是Windows还是Linux,PATH相关的目录是可执行文件的目录,比如你在命令行执行java,在没有指定绝对路径的前提下,加载的目录是定义在PATH里的

题主我更新下答案

sys.path其实定义了一个python package加载的目录

比如我在2个目录下有2个同名的python文件,比如hello.py,见下图

上图在test目录下分别有2个package t1和t2,其中都有重名的文件hello.py

你可以把test想象成别的小伙伴开发的package

我们现在电脑上的开发目录是/data,注意,这个跟引用的package完全是2个不同的目录

仔细看图中的代码,通过操作sys.path来设定package的加载顺序。

实际开发中,python的加载package顺序可以通过配置sys.path来实现不同的package加载。

虽然可以这么做,但请注意,在程序运行期间动态的修改sys.path是一个非常不好的习惯,会导致很多难以排查的bug。一般有特殊的加载顺序要求的,需要通过设置PYTHONPATH来实现。

sys.path除了PYTHONPATH定义的module之外,还有内置的built in加载模块。

如果对这部分的实现很感兴趣,可以读下python library的importlib一章节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值