• #!/usr/bin/python和#!/usr/bin/env 的区别(转)


    #!/usr/bin/python和#!/usr/bin/env 的区别

     
    #!/usr/bin/python
    通常在一个.py文件开头都会有这个语句

    它只在Linux系统下生效,意思是当作为可执行文件运行时调用的解释器的位置
    上面代码的意思是调用/usr/bin/下的Python来作为解释程序,同样,你也可以写#!/usr/bin/python3#!/usr/bin/python2
    如果不是默认安装位置这个地方可能就找不到,那么文件就是报错

    所以就有了另一种写法

    #!/usr/bin/env python  这表示调用系统环境变量里的Python
    也就是Path的环境变量设置问题,也可以写成
    #!/usr/bin/env python2
    #!/usr/bin/env python3

    如果你用python a.py来运行就是手动指定了解释器,这一行就不会生效了
    #!/usr/bin/python3
    (1)如果调用python脚本时,使用:
    
    python script.py 
    #!/usr/bin/python 被忽略,等同于注释。
    (2)如果调用python脚本时,使用:(需要添加权限)添加可执行权限
    chmod +x test.py
    ./script.py 
    #!/usr/bin/python 指定解释器的路径。

    Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别

    大部分python文件的头部都会写上 #!/usr/bin/python 或者 #!/usr/bin/env ,这个语句主要和运行模式有关,

    如果我们用普通运行模式例如(linux) : python *.py 那么这个语句在此运行模式下无效。如果想让python程序像普通程序一样运行,例如:./*.py (文件要有可执行权限chmod a+x *.py),这个语句就起作用了,他用来为脚本语言指定解释器,通常认为用 #!/usr/bin/env python 要比 #!/usr/bin/python 更好,因为 python 解释器有时并不安装在默认路径,例如在虚拟环境中。

    解释:

    #!/usr/bin/env python
    这种写法在你机器上安装了多个版本的python的时候有意义,这样声明的时候,会去取你机器的 PATH 中指定的第一个 python 来执行你的脚本。如果这时候你又配置了虚拟环境的话,那么这样写可以保证脚本会使用你虚拟环境中的 python 来执行。
    #!/usr/bin/python
    表示写死了就是要 /usr/bin/python 这个目录下 python 来执行你的脚本。这样写程序的可移植性就差了,如果此路径下python命令不存在就会报错。

    所以一般情况还是用第一种写法。
  • 相关阅读:
    锋利的jQuery书中推荐的几款插件
    60款很酷的 jQuery 幻灯片演示和下载
    关于viewport
    几个Jquery对话框插件
    从小白白到大白白之初识区块链(如何理解区块链)
    简单的MVC与SQL Server Express LocalDB
    java的MVC与C#
    企业微信登陆方式
    整洁的测试遵循的规则
    Android活动的生命周期
  • 原文地址:https://www.cnblogs.com/z-x-y/p/9329548.html
Copyright © 2020-2023  润新知