Skip to main content
 首页 » 编程设计

python之工具启动 Python 脚本中的 shebang 从何而来

2025年05月04日8telwanggs

一些广泛使用的 Python 工具——例如 pip、yolk 和 ipython——由带有 shebang 的脚本启动。指定应该使用什么 Python 实例来运行它们。这一行的内容是如何确定的?


例如,在 OS X 机器上,我一直在使用 Apple 的 Python,这一行显示为

#!/usr/bin/python 

如果我安装python.org版本会怎样,放在

/Library/Frameworks/Python.framework/Versions/2.7/python  

符号链接(symbolic link)在

/usr/local/bin/python 

然后更新或重新安装了一个工具?如果我更新了一个工具,线路会改变吗?我是否必须完全重新安装(而不是简单地更新)每个工具才能强制进行更改?这条线会变成什么?会不会是

#!/usr/local/bin 

或

#!/Library/Frameworks/Python.framework/Versions/2.7 

有没有办法做到这一 pip

#!/usr/bin/env python 

请您参考如下方法:

该行来自sys.executable value .

如果您对 python 可执行文件进行符号链接(symbolic link),并从该符号链接(symbolic link)运行 Python,sys.executable 将使用新路径。是的,更新或重新安装该工具会反射(reflect)出已更改的可执行路径。

我不知道有什么方法可以制作 pip, friend 们可以使用 #!/usr/bin/env python。这确实是个坏主意,因为这会使始终使用正确的 Python 变得更加困难,因为运行命令行脚本需要在其中找到已安装的包。