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

标签 python pip package shebang

一些广泛使用的 Python 工具——例如 pipyolkipython——由带有 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/

相关文章:

python - 在 Linux 服务器上使用 get-pip.py --user 安装 pip 在哪里

库导入后Java包不存在

python - ValueError:选项名称已添加 pytest

python - 通过 Pexpect 减少戒烟

python - Radviz python 不显示点?

c++ - Visual C++ 可再发行再发行

java - 由于软件包损坏,无法在 Ubuntu 中安装 java

python - Django 1.4:如何忽略loaddata中的字段和模型

python - 错误 : Installing SciPy in Windows 10 64bit using pip (Python 3. 5.2)

python - 如何在容器中安装pip软件包