文档章节

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

卓尔
 卓尔
发布于 2014/10/15 16:04
字数 372
阅读 23
收藏 0

面试的时候,面试官问我:为什么linux下写python代码的第一行常常是:#!/usr/bin/env python ?

我没有答得上来,回去查了查原来是这样的:

脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法

计算机科学中,Shebang(也称为Hashbang)是一个由井号叹号构成的字符序列(#!),其出现在文本文件的第一行的前两个字符。 在文件中存在Shebang的情况下,类Unix操作系统程序载入器会分析Shebang后的内容,将这些内容作为解释器指令,并调用该指令,并将载有Shebang的文件路径作为该解释器的参数[1]

© 著作权归作者所有

卓尔

卓尔

粉丝 23
博文 283
码字总数 129742
作品 1
杭州
私信 提问
python中#!/usr/bin/python与#!/usr/bin/env python的区别

目的是在运行python脚本的时候告诉操作系统我们要用python解释器去运行py脚本 所以我们在第一句往往会写如下两句中的其中一句: 或 就是说在没有在执行程序时指出用什么程序运行py脚本时,系统...

p柯西
2018/06/15
60
1
五个python常用运维脚本面试题实例

原文作者:chengxuyuan 来源:马哥教育 链接:https://mp.weixin.qq.com/s/nahDVL6aiMQ2vp85wo6nNw 一、用Python写一个列举当前目录以及所有子目录下的文件,并打印出绝对路径 #!/usr/bin/e...

Py爱好
2018/08/05
628
0
shebang对于python2怎么写?我想要它支持python和python2两个名称

就是把这两种情形取或: #!/usr/bin/env python #!/usr/bin/env python2 因为有的人的linux中python叫做python2 有的叫做python...

hit9
2012/09/08
716
3
【笔记】CentOS升级Python2.7及安装pip

CentOS升级Python2.7及安装pip 1) 升级Python2.7 issue: INFO: Can't locate Tcl/Tk libs and/or headers Python build finished, but the necessary bits to build these modules were not ......

加壹
2014/03/21
7.1K
1
ubuntu下Python的安装和使用

4.1 Python的安装 ubuntu下可以很方便的使用apt-get来安装软件,这里我们安装 Python 2.7/3.2(因为Python2和Python3区别很大)。安装步骤如下(下面的命令安装了两种)。 4.1.1 安装Python发...

JungleKing
2018/05/16
203
0

没有更多内容

加载失败,请刷新页面

加载更多

崛起于Springboot2.X之5分钟解决单点登陆(53)

SpringBoot2.X心法总纲 1、pom文件依赖 <dependency> <groupId>com.majiaxueyuan</groupId> <artifactId>sso-core</artifactId> <version>1.2.2</version></dependency> 2、......

木九天
19分钟前
16
0
面向对象和面向过程的区别

面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对...

无名氏的程序员
20分钟前
12
0
OpenStack大事记

2010年7月19日,Rackspace、NASA、Citrix、Dell共同开发并发布OpenStack第一个版本。 2011年10月,Rackspace放弃OpenStack控制权,交由一新成立的OpenStack基金会管理。 2012年5月NASA宣布退...

大别阿郎
20分钟前
9
0
面向对象的简单应用—以交通工具(Vehicle)为列

请定义一个交通工具(Vehicle)的类其中有: 属性: 速度(speed)、 体积(size)等,方法:移动(move())、设置速度(setSpeed(int speed))、加速 speedUp()、减速 speedDown()等。最后在测试类 Ve...

INEVITABLE
31分钟前
9
0
通往艺术家之路

通往艺术家之路 并发编程中,开发者往往需要权衡锁的颗粒粗细,锁住的代码块太大呢会导致可能的线程堵塞,锁的颗粒太细呢又会因为频繁地加锁解锁导致系统用户态内核态的转换从而消费很多时间...

StupidZhe
32分钟前
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部