假设您编写了一个 Python shell 脚本。它可能会以这样的方式开始:
#!/usr/bin/python
问题是,如果您经常使用 virtualenv,那么这个调用就是完全错误的。你实际上希望这个脚本调用 virtualenv 的 python 二进制文件,如果它在这个环境中,否则 /usr/bin/python/。就像您的 shell 会决定的那样,当您将 python 编写为 shell 命令时。
您将如何编写 #! 行来满足此要求?
请您参考如下方法:
改用#!/usr/bin/env python。
env command在当前 PATH 中查找二进制文件;激活你的虚拟环境会将你的 virtualenv bin/ 目录添加到路径中,env 会在那里找到你的 python 二进制文件而不是全局 python。
