然后在使用时会根据您环境中定义的路径#!/usr/bin/env python搜索命令的可执行文件,这很好,因为您可能安装了多个版本的 Python(在 Linux 中通常有版本 2 和 3)。python$PATH
如果我们在终端中尝试这个(结果可能会有所不同):
$ env python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ env python
Python 3.4.3 (default, Oct 14 2015, 20:33:09)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
现在我得到了 Python 的第 3 版。观察如果我$PATH出于测试目的修改会发生什么:
作为/usr/bin第一条路线:
$ PATH="/usr/bin/:/usr/local/bin"
$ env python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
作为/usr/local/bin第一条路线:
$ PATH="/usr/local/bin:/usr/bin"
$ env python
Python 3.4.3 (default, Oct 14 2015, 20:33:09)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
#!/usr/bin/env python
我会说这是最推荐的,因为它利用环境来查找 Python 可执行文件的第一次出现。如果您阅读了该命令的文档
env
:据了解,您在修改后的环境中执行命令。让我们看看里面有什么
$PATH
:然后在使用时会根据您环境中定义的路径
#!/usr/bin/env python
搜索命令的可执行文件,这很好,因为您可能安装了多个版本的 Python(在 Linux 中通常有版本 2 和 3)。python
$PATH
如果我们在终端中尝试这个(结果可能会有所不同):
为了演示操作,
env
我们将做一些测试。python3
我们从a创建一个符号链接/usr/local/bin
:您可以在上面注意到,在 my
$PATH
中,路径在路径/usr/local/bin
之前,/usr/bin
所以如果我再次运行:现在我得到了 Python 的第 3 版。观察如果我
$PATH
出于测试目的修改会发生什么:作为
/usr/bin
第一条路线:作为
/usr/local/bin
第一条路线:我希望这很清楚,我认为使用这种方式是一个优势,但如果 Python 路由已被操纵,有时它可能无法按预期工作,尽管您也可能更具体一些并使用例如这些在你的脚本中:
#!/usr/bin/env python2
#!/usr/bin/env python3
#!/usr/bin/python
这也是有效的,您只需调用 Python 可执行文件的路径:
我用这种方式遇到了一些问题,我似乎记得在某些 Linux 发行版中,Python 可执行文件在
/usr/bin/python
.最后的笔记
#!