Python #! 中的可执行文件对于任何虚拟环境

Python executable in #! for any virtual environment

如何编写 python 文件,使其在任何虚拟环境中都能 运行 正确。如果我在顶部放置一个 shabang 以及我的虚拟环境的 python 解释器的路径,我可以从任何地方 运行 那个 python 文件,并且程序会找到它的所有模块。但是,如果有人分叉我的代码并在不同的位置构建虚拟环境,所有这些都会崩溃。

使用 env 命令查找 python 而不是使用硬编码路径。 这是解决此类问题的常用方法。

NAME
env - run a program in a modified environment
SYNOPSIS
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]

所以沙帮文应该是:

#!/usr/bin/env python

#!/usr/bin/env python3

其他脚本语言也可以这样做:

#!/usr/bin/env perl