关于Python脚本开头两行的:#!/usr/bin/env p
2018-09-24 本文已影响0人
疯人愿的疯言疯语
Python脚本开头都有下面的两行,而且一定在前两行
#!/usr/bin/env python
# -*- coding:utf-8 -*-
或者
#!/usr/bin/python
# -*- coding:utf-8 -*-
1.#!/usr/bin/env python 或 #!/usr/bin/python
它是用来指定用什么解释器运行脚本以及解释器所在的位置。也就是说你得告诉系统你用什么解释器来运行这个脚本。
有时候写 #!/usr/bin/python
不行,因为系统用户没有把python解释器没有装在/usr/bin/目录,所以改成其所在目录就行了,或者使用更通用的方法是:#!/usr/bin/env python
2. # -*- coding:utf-8 -*-
这是用来指定文件编码为utf-8的,默认的编码格式是ASCII码
可以参考PEP 263 -- Defining Python Source Code Encodings
说到的大概重点就是下面这段:
Python will default to ASCII as standard encoding if no other encoding hints are given.
To define a source code encoding, a magic comment must be placed into the source files either as first or second line in the file, such as:
# coding=<encoding name>
or (using formats recognized by popular editors):
#!/usr/bin/python
# -*- coding: <encoding name> -*-
or:
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
More precisely, the first or second line must match the following regular expression:
^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)
归纳起来一般可以写为:
# coding=utf-8
# coding:utf-8
# -*- coding=utf-8 -*- 用解释器二进制和使用Emacs风格的文件编码注释