浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别-bin文件安装

首先给大家道个歉,由于标题不支持#,所以才用井来代替。

#!/usr/bin/env python与#!/usr/bin/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的指向是哪个版本的[下有案例]

案例:

vim demo.py

简单的写一个python脚本

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

#!/usr/bin/env python

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

print("hello, 浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别-bin文件安装" ame)

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

运行

./demo.py

报了一个未定义raw_input的错

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

raw_input是python2的,python3已经废弃

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

env python

如下图:是python3.6.2

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

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

cd /usr/bin

ll python*

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

python2.7.5和python3.6

并且python指向的是python3.6

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

解决方案:

1、 指定解析器

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

2、 修改脚本

写死python路径

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

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

补充:

由于yum是使用的python2.7.5

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

浅谈脚本首行井!/usr/bin/env python与井!/usr/bin/python区别

测试完成

一个典型的反面教材。

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

推荐阅读