今天又是贼几把菜的一天0.0

读别人程序的时候看到在python文件头部设置签名,感觉贼几把酷,自己也试着在文件前段设置了一下。

设置还是蛮简单的,设置过程如图所示。

设置后如图所示:

当然你也可能看到有的人在文件头部添加如下语句,但是你并不知道什么意思,只是感觉很酷。

#!/usr/bin/python
#!/usr/bin/env python

首先需要说明:
这句代码在unix类的操作系统才有意义!
这句代码在unix类的操作系统才有意义!
这句代码在unix类的操作系统才有意义!

这句话的目的是告诉操作系统使用哪个Python解释器来执行这个py文件。

在linux上执行一下命令 /usr/bin/env python ,就知道这行其实是call一下python解释器.

这句话的一般有两种形式:

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

2. #!/usr/bin/env python
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。

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

如何选择
一般情况下,使用第2种方法#!/usr/bin/env python更好。

因为#!/usr/bin/python限定了Python解释器必须在/usr/bin/python这个路径下,如果不在运行就出出错。

而#!/usr/bin/env python是从环境变量设置中查询Python解释器的路径,这种方法更加灵活。

我也是在VScode中跑python,因为带有#!/usr/bin/env python所以报错,然后发现0.0这是一句命令而不是简简单单的签名

菜还是我菜啊0.0

关于python脚本头部设置#!/usr/bin/python的更多相关文章

  1. 调用python脚本报错/usr/bin/env: python : No such file or directory

    一.调用python脚本报错 /usr/bin/env: python: No such file or directory 二.解决方法 原因是在windows上编写的脚本,使用dos2unix对脚 ...

  2. 关于在linux python源文件头部添加 “#!/usr/bin/env python” 不能直接运行的问题

    如果环境变量设置正确 如果文件是从windows拷贝到linux中的 可能是换行符造成的.试试dos2unix命令,或相似的命令,把dos格式的换行符转为unix格式.

  3. #!/usr/bin/python和#!/usr/bin/env 的区别

    #!/usr/bin/python 通常在一个.py文件开头都会有这个语句 它只在Linux系统下生效,意思是当作为可执行文件运行时调用的解释器的位置上面代码的意思是调用/usr/bin/下的Pyth ...

  4. #!/usr/bin/python和#!/usr/bin/env 的区别(转)

    #!/usr/bin/python和#!/usr/bin/env 的区别   #!/usr/bin/python 通常在一个.py文件开头都会有这个语句 它只在Linux系统下生效,意思是当作为可执行 ...

  5. /usr/bin/python与/usr/bin/env python的区别

    Infi-chu: http://www.cnblogs.com/Infi-chu/ /usr/bin/env python执行时,先查找python解释器的路径,然后执行./usr/bin/pyth ...

  6. Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用

    #!/usr/bin/Python指定用什么解释器运行脚本以及解释器所在的位置 # -*- coding: utf-8 -*-用来指定文件编码为utf-8的 估计有不少人注意过一些python脚本开头 ...

  7. 关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型

    #!/usr/bin/python指定用什么解释器运行脚本以及解释器所在的位置 # -*- coding: utf-8 -*-用来指定文件编码为utf-8的PEP 0263 -- Defining P ...

  8. 【转】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型

    原文网址:http://www.crifan.com/python_head_meaning_for_usr_bin_python_coding_utf-8/ #!/usr/bin/python 是用 ...

  9. 【转载】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型

    1.#!/usr/bin/python 是用来说明脚本语言是 python 的 是要用 /usr/bin下面的程序(工具)python,这个解释器,来解释 python 脚本,来运行 python 脚 ...

随机推荐

  1. js文件中使用el表达式问题

    作者:Sang 单独js文件不能用el表达式. 首先,JSP是由服务端执行的,EL表达式自然也由服务端解析执行,因此如果EL所在的脚本在JSP页面内,它是可以获取到值的,这个值在服务器端返回到浏览器端 ...

  2. @WebFilter 的使用及采坑

    @WebFilter@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器.该注解具有下表给出的一些常用属性 ( 以下所有属性均为 ...

  3. pip command not found

    [root@ Python-2.7.9]# pip install jinja2 -bash: pip: command not found 解决 [root@ ~]#  yum -y install ...

  4. MFC、API、C++三者的区别

    MFC(Microsoft Foundation Class)是微软的基础类库,只能用于Windows系统. API(Application Programming Interface)是应用程序编程 ...

  5. 1 Mybatis

    1 使用Maven导入mybatis依赖 在pom.xml中写上一下代码:这些代码的查找可在https://mvnrepository.com/open-source网站上寻找,导入mybatis时要 ...

  6. 有关 C# WebAPI知识

    1.[懒得安分博客总结的很全面] 2.关于基础类型作入参数的问题      参照此博客[ASP.NET WebAPI String 传值问题] 3.代码说明     using System; usi ...

  7. Non-standard serial port baud rate setting

    ////combuad_recv.cpp #include <stdio.h> /*标准输入输出定义*/ #include <stdlib.h> /*标准函数库定义*/ #in ...

  8. ARM编辑、编译工具

    手动编译 编译器问题,肯定是GNU的大名鼎鼎的GCC了,与此相关的什么连接器,汇编器也都包含在内了. 针对arm的GCC,当然就是arm-linux-gcc了,我所用的版本就是友善之臂光盘自带arm- ...

  9. ****题(alb)

    sol:较简单的dp题,n4随便写写,n3需要加一个小优化 int i,j,k,i1,j1,i2,j2; memset(dp,,sizeof dp); ;i<n;i+=) dp[][i][i+] ...

  10. 5.13T1Send 题(send)

    Send 题(send) [题目描述] 某个国家有