【问题标题】:correct shebang for virtualenvvirtualenv 的正确 shebang
【发布时间】:2020-03-14 07:49:17
【问题描述】:

我有项目 shell_script 和 virtualenv 的结构树是 shell_script/ENV/bin/python3 对于这个目录树来说,shebang 应该是什么样子?

这不行

#!/ENV/bin/env python3.6

【问题讨论】:

标签: python python-3.x virtualenv shebang python-packaging


【解决方案1】:

假设你已经激活了你的 virtualenv,你可以使用

#!/usr/bin/env python3.x

这将找到您感兴趣的正确可执行文件。

【讨论】:

    【解决方案2】:

    应该是这样的:

    #!/path/to/ENV/bin/python3
    

    然而,是安装程序为脚本写出shebang。你不应该手动写出来。 无论你在源代码中手动编写什么 shebang,安装程序包都会被安装程序重写。

    安装程序使用的任何 Python 可执行文件都将被硬编码到 shebang 中,因此如果您在 virtualenv 中 pip install ,则将使用 virtualev 到 Python 可执行文件的路径。如果您pip install 使用系统 Python,则将使用系统可执行文件。

    【讨论】: