我应该把shebang放在我的Python脚本中吗?以什么形式?
#!/usr/bin/env python
or
#!/usr/local/bin/python
它们同样便携吗?哪种形式使用最多?
注意:龙卷风项目使用shebang。另一方面,Django项目没有。
我应该把shebang放在我的Python脚本中吗?以什么形式?
#!/usr/bin/env python
or
#!/usr/local/bin/python
它们同样便携吗?哪种形式使用最多?
注意:龙卷风项目使用shebang。另一方面,Django项目没有。
当前回答
任何脚本中的shebang行决定了脚本是否能够像独立可执行文件一样执行,而无需事先在终端中键入python或在文件管理器中双击它(在配置正确的情况下)。它不是必需的,但通常放在那里,这样当有人看到在编辑器中打开的文件时,他们立即知道他们在看什么。但是,你用哪条线是很重要的。
Python 3脚本(默认为版本3.latest)的正确用法是:
#!/usr/bin/env python3
Python 2脚本(默认为版本2.latest)的正确用法是:
#!/usr/bin/env python2
不应该使用以下代码(除非你编写的代码与Python 2兼容,这种情况很少见)。X和3.x):
#!/usr/bin/env python
PEP 394中给出这些建议的原因是,python可以在不同的系统上引用python2或python3。
此外,不要使用:
#!/usr/local/bin/python
python可以安装在/usr/bin/python或/bin/python 案例,以上#!将会失败。”
——“# !/usr/bin/env python“vs”!/ usr / local / bin / python)”
其他回答
这只是个人口味的问题。添加shebang意味着人们可以直接调用脚本(假设它被标记为可执行);省略它只意味着必须手动调用python。
运行程序的最终结果不会受到任何影响;这只是手段的选择。
如果你想让你的文件可执行,你必须在你的脚本中添加shebang line。
#!/usr/bin/env python3
这是更好的选择,因为这将不依赖于特定的Linux发行版,但可以用于几乎所有的Linux发行版,因为它从环境变量中寻找python3路径,这对于不同的Linux发行版是不同的。
而
#!/usr/local/bin/python3
将是python3的发行版特定路径,如果python3不在此路径上,将无法工作,并且可能导致开发人员从一个发行版迁移到另一个linux发行版时的混乱和模糊。
如果脚本是可执行的,则应该添加shebang。您还应该使用安装软件来安装脚本,该安装软件将shebang修改为正确的内容,以便它能够在目标平台上工作。distutils和Distribute就是这样的例子。
任何脚本中的shebang行决定了脚本是否能够像独立可执行文件一样执行,而无需事先在终端中键入python或在文件管理器中双击它(在配置正确的情况下)。它不是必需的,但通常放在那里,这样当有人看到在编辑器中打开的文件时,他们立即知道他们在看什么。但是,你用哪条线是很重要的。
Python 3脚本(默认为版本3.latest)的正确用法是:
#!/usr/bin/env python3
Python 2脚本(默认为版本2.latest)的正确用法是:
#!/usr/bin/env python2
不应该使用以下代码(除非你编写的代码与Python 2兼容,这种情况很少见)。X和3.x):
#!/usr/bin/env python
PEP 394中给出这些建议的原因是,python可以在不同的系统上引用python2或python3。
此外,不要使用:
#!/usr/local/bin/python
python可以安装在/usr/bin/python或/bin/python 案例,以上#!将会失败。”
——“# !/usr/bin/env python“vs”!/ usr / local / bin / python)”
使用第一个
which python
这将给出输出作为python解释器(二进制)存在的位置。
这个输出可以是任意的
/usr/bin/python
or
/bin/python
现在适当地选择shebang线并使用它。
我们可以用:
#!/usr/bin/env
or
#!/bin/env