当前位置: 首页 > 面试题库 >

Python-为什么人们要写#!/usr/bin/env python shebang在python脚本的第一行?

柴亦
2023-03-14
问题内容

在我看来,没有该行,文件运行相同。


问题答案:

如果你安装了多个版本的Python,请/usr/bin/env确保使用的解释器是环境中的第一个解释器$PATH。另一种方法是对类似的东西进行硬编码#!/usr/bin/python;可以,但是不太灵活。

在Unix中,要解释的可执行文件可以通过#!在第一行的开头加上,然后是解释器(及其可能需要的任何标志)来指示要使用的解释器。

当然,如果你在谈论其他平台,这个规则是不适用的(但是“shebang行”没有坏处,如果你曾经将这个脚本复制到一个有Unix基础的平台,比如Linux、Mac等等,它会有帮助)。



 类似资料:
  • 我在许多地方看到过,包括本网站上的建议(首选的Bash shebang是什么?),使用而不是。我甚至看到一个有进取心的人建议使用是错误的,这样做会丢失bash功能。 尽管如此,我在一个严格控制的测试环境中使用bash,在这个环境中,循环中的每个驱动器本质上都是单个主驱动器的克隆。我理解可移植性的论点,尽管它不一定适用于我的情况。是否还有其他理由选择而不是替代方案?假设考虑可移植性,是否有理由使用它

  • 在Bash脚本的头中,这两个语句之间有什么区别: >

  • 我尝试创建python应用程序的debian包,如下所示: 写setup.py 通过stddeb生成一个debian文件夹 运行dpkg-build包-b-rfakeroot-uc来构建debian包 设置。py就像 如何安装foo。py到/usr/local/bin而不是安装到/usr/bin?我知道有一个选项——在运行python安装程序时安装scripts=/usr/local/bin。py

  • 问题内容: 我之前已经制作过Bash脚本,它们运行良好,没有开始的情况。 放入它有什么意义?事情会有所不同吗? 另外,您如何发音?我知道这发音为“砰”。 怎么发音? 问题答案: 这是一个约定,因此* nix shell知道要运行哪种解释器。 例如,ATT的较旧版本默认为 sh (Bourne shell),而BSD的较旧版本默认为 csh (C shell)。 即使在今天(大多数系统都运行bash

  • 我的一位同事最近在eclipse中创建了一个新项目,并使用内置的git客户端提交和推送。在我克隆到计算机并用eclipse打开后,我发现eclipse正在创建.classpath文件。CLASSPATH不是eclipse项目(也是.project)查找引用的JAR的关键文件吗?我在谷歌后非常困惑,看到所有的讨论都在谈论忽略他们。难道它们不是Eclipse正确工作的关键吗?为什么人们忽视了他们?如果

  • 本文向大家介绍bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory,包括了bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory的使用技巧和注意事项,