python 文件开头两行注释解释
Published:
常见 python 文件的前两行都会写上如下两行代码, 下面分别解释这两条语句的意义。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
或者
#!/usr/bin/python
# -*- coding:utf-8 -*-
#!/usr/bin/python
和 #!/usr/bin/env python
Linux 系统
Linux 系统根据文件开头(首行)的标记来判断文件类型,通过文件所指定的程序来运行。
#!/usr/bin/python
是告诉操作系统调用 /usr/bin
下的 python 解释器来执行这个脚本。例如,我们编写了 hello.py 脚本,执行时需要输入命令:python hello.py
。因为有了这行声明,就可以直接用 ./hellp.py
来执行了,在这之前需要给脚本设置可执行权限 chmod +x hello.py
。
#!/usr/bin/env python
是为了防止没有将 python 装在默认的 /usr/bin
路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作,推荐这种写法。
Windows 系统
Windows 系统用文件名的后缀(扩展名)来判断文件类型,只要是 .py 后缀的就关联到 python 程序去执行。因此,#!/usr/bin/python
或 #!/usr/bin/env python
在 Window 系统下相当于普通的注释,并没有意义。
# -*- coding: utf-8 -*-
2.x 版本的 py 文件一般默认的是 ASCII 码,如果文件里有中文,运行时会出现乱码,注释是中文也不行。因此,需要把文件编码类型改为 utf-8 的类型,输入 # -*- coding:utf-8 -*-
之后会把文件编码强制转换为 utf-8。
3.x 版本的 py 文件的默认编码为 Unicode,也就是说不用进行编码声明,可以直接使用中文了。
参考资料及致谢
python文件开头两行#!/usr/bin/python和# -- coding:utf-8 --解释以及Pycharm自动创建py文件头部信息