使用/usr/bin/env与硬路径的Python shebang有什么区别?
我以前常用这个开头符号
#!/usr/bin/env python
什么时候使用
#!/usr/bin/python
它们之间到底有什么具体的区别呢?
1 个回答
96
#!/usr/bin/python
是固定写死的,始终会运行 /usr/bin/python
,而 #!/usr/bin/env python
则会根据你当前环境中的默认设置来运行相应的 python
(比如它会考虑 $PATH
这个环境变量,你可以用 which python
命令来查看将会使用哪个 python 解释器)。
第二种写法(#!/usr/bin/env python
)更受欢迎,因为它不依赖于特定的安装方式。比如说,它可以在使用 virtualenv
的环境中正常工作,或者在没有 /usr/bin/python
的系统上运行,比如只有 /usr/local/bin/python
的情况。