Kay*_*leL 136 python scripting
我已经注意到了几种脚本语言,但在这个例子中,我使用的是python.在许多教程中,他们将从#!/usr/bin/python3
第一行开始.我不明白为什么我们有这个.
如果有的话,我可以看到这打破了python脚本,因为上面列出的原因.
Jin*_*Jin 221
#!/usr/bin/python3
是一个shebang线.
shebang行定义了解释器所在的位置.在这种情况下,python3
口译员位于/usr/bin/python3
.甲shebang行也可以是bash
,ruby
,perl
或任何其他脚本语言解释,例如:#!/bin/bash
.
没有shebang行,操作系统不知道它是一个python脚本,即使你在脚本上设置执行标志并运行它./script.py
.要使脚本在python3中默认运行,python3 script.py
请将其作为调用或设置shebang行.
#!/usr/bin/env python3
如果他们在不同位置安装了语言解释器,您可以使用不同系统的可移植性.
Mar*_*som 19
这被称为哈希爆炸.如果从shell运行脚本,它将检查第一行以确定应该启动什么程序来解释脚本.
非基于Unix的操作系统将使用自己的规则来确定如何运行脚本.例如,Windows将使用文件扩展名,这#
将导致第一行被视为注释.
如果Python可执行文件的路径错误,那么脚本自然会失败.从标准约定指定的任何位置创建实际可执行文件的链接很容易.
zxq*_*xq9 10
此行有助于查找将运行脚本的程序可执行文件.这种shebang符号在大多数脚本语言中都是相当标准的(至少在成人操作系统上使用).
该行的一个重要方面是指定将使用哪个解释器.例如,在许多以开发为中心的Linux发行版中,同时安装多个版本的python是正常的.
Python 2.x和Python 3不是100%兼容的,因此这种差异非常重要.所以,#! /usr/bin/python
和#! /usr/bin/python3
是不一样的(也不是完全一样#! /usr/bin/env python3
,因为这页上其他地方所指出.
从3.7 Python doc 中阐明 shebang 行如何在 Windows 上工作:
归档时间: |
|
查看次数: |
155730 次 |
最近记录: |