我应该把shebang行放在每个python文件中吗?

ap0*_*ap0 6 python shebang

我正在进行一个中型python(2.7)项目,我导入了多个文件.我有一个主要的python文件启动程序.其他文件包含类定义,函数等.

我想知道我是否应该将shebang行放在每个python文件中,或者只是为了启动我的程序而运行的那个?

dam*_*ois 11

只有通过直接调用它们才能执行的文件需要shebang.小提示:如果文件包含

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

最好(坚持最低惊讶原则)用一个shebang开始它.确保那个shebang健壮; 相反

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

许多模块文件包含main用于启动测试的方法,因此许多模块文件以shebang开头.

  • @cdarke:使用`env`应该*永远*做一些你不期望的事情.它将在你的`PATH`中运行`python`,这一点都不应该令人惊讶(我不确定这对任何人来说都会让人感到惊讶).如果你想让它使用不同的`python`,你应该只用一个被称为参数的脚本来调用`python`,shebang不会覆盖它. (2认同)