首先给大家道个歉,由于标题不支持#,所以才用井来代替。
#!/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)
运行
./demo.py
报了一个未定义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]
测试完成
一个典型的反面教材。
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持。