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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#!/usr/bin/env python与#!/usr/bin/python的区别相关的知识,希望对你有一定的参考价值。

请高手指教

在unix类的操作系统才有意义。

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

#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。

扩展资料:

Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 

Python常用的代码:,

1,生成随机数

rnd = random.randint(1,500):生成1-500之间的随机数

2,读文件

f = open("c:\\\\1.txt","r")

lines = f.readlines()

for line in lines

print line

3,写文件

f = open("c:\\\\1.txt","r+"):可读可写模式

f.write("123"):写入字符串

4正则表达式,读取tomcat的日志并打印日期

import re

regx = "\\d\\d\\d\\d-\\d\\d-\\d+"

f = open("c:\\stdout.log","r")

i = 0

for str in f.readlines():

if re.search(regx,str):

Response.write(str+"<br>")

if i>10:break

i=i+1

f.close();

5,连接数据库

import pgdb

conn = pgdb.connect

(host='localhost',databse='qingfeng',user='qingfeng',password='123')

cur = conn.cursor()

cur.execute("select * from dream")

print cur.rowcount

参考技术A 这个在unix类的操作系统才有意义。
#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
参考技术B 楼主可以敲击env这个命令看一下执行结果,下面是我的结果:
[root@REdHAT root]# env
HOSTNAME=REdHAT
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=10.2.1.5 49924 22
SSH_TTY=/dev/pts/1
USER=root
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
USERNAME=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/root/bin
INPUTRC=/etc/inputrc
PWD=/root
LANG=en_US.UTF-8
SHLVL=1
HOME=/root
BASH_ENV=/root/.bashrc
LOGNAME=root
SSH_CONNECTION=10.2.1.5 49924 10.2.1.234 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env

再尝试敲击命令env python:
[root@REdHAT root]# env python
Python 2.6.1 (r261:67515, Oct 22 2009, 16:19:48)
[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

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

这个写法要根据实际情况啦,我遇到过一个环境是嵌入式的linux系统,这里就没有/usr/bin/env这个程序,所以我需要以/usr/bin/python这种方法去运行,还是要按具体情况去分析的
参考技术C 这跟linux系统里安装python的目录有关

#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法
参考技术D 看下www。akppx.com

以上是关于#!/usr/bin/env python与#!/usr/bin/python的区别的主要内容,如果未能解决你的问题,请参考以下文章

usr/lib/怎么解决command-not-found:/usr/bin/sudo:解释器错误:没有那个文件

rsync启动不了.运行/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf后,

Qt编译遇到 /usr/bin/ld: cannot find -lGL问题

Linux 执行yum clean all报错File "/usr/bin/yum", line 30 except KeyboardInterrupt,

loadLibrary Can't load '/usr/local/MATLAB/R2014b/bin/glnxa64/lib

/usr/bin/env: python: 权限不够 root@kali:~# 这个是怎么回事? 我执行PY文件就会这样,