首先来看两段代码:
#!/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,到这里了,看了明白了么。
干货分享
领取专属 10元无门槛券
私享最新 技术干货