一些广泛使用的 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 变得更加困难,因为运行命令行脚本需要在其中找到已安装的包。
关于python - 工具启动 Python 脚本中的 shebang 从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20128824/