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

首先来看两段代码:

#!/usr/bin/env python

print "Foo"

#!/usr/bin/python

print "Bar"

有发现区别么?不要说一个输出 Foo,一个输出 Bar

平时你写 Python 的时候是怎么写开头的呢?

#!/usr/bin/python:

是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器。

#!/usr/bin/env python:

当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。

#!/usr/bin/python相当于写死了python路径。

#!/usr/bin/env python会去环境设置寻找python目录。

注意:

防止用户没有将python装在默认的/usr/bin路径里,推荐使用#!/usr/bin/env python。

注意安装双版本的python的指向是哪个版本的[下有案例]

案例:

简单的写一个python脚本

注意:这里是通过env去path中寻找解释器

#!/usr/bin/env python

name = raw_input("what is your name:")

print("hello, %s" %name)

运行

报了一个未定义raw_input的错

raw_input是python2的,python3已经废弃

查看一下环境变量中python解释器

env python

如下图:是python3.6.2

咱们再到/usr/bin下看一看

cd /usr/bin

ll python*

可以看到这里我们是装了双版本的python

python2.7.5 和 python3.6

并且python指向的是python3.6

解决方案:

1、 指定解析器

2、 修改脚本

写死python路径

3、修改python指向python2.7.5[不做演示]

补充:

由于yum是使用的python2.7.5

一定要记得查看一下/usr/bin/yum文件的解析器[python2]

OK,到这里了,看了明白了么。

干货分享

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190125B1DFLS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券