告诉 Python fabfile 使用不同的 Python 解释器?

Tell Python fabfile to use different Python interpreter?

有没有办法告诉 Python Fabric 脚本 (fabfile.py) 使用不同于默认 Python 版本的 Python 执行?我有一个使用 Python 2.7 构建的虚拟环境,我的 fabfile 必须在 venv 的上下文中执行。但是,我希望使用我的 python3 可执行文件将此 fabfile 运行,这样我就可以利用 Python 3 的一些功能。我可以做任何像你在 Bash 脚本中可以做的事情吗,你可以在其中说“#!/bin/bash”,从而指定应该用于 运行 的确切 Bash 可执行文件脚本?

假设你是运行它:

$ fab ...

尝试

$ which fab

找到它的位置。对我来说是 /usr/local/bin/fab:

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from fabric.main import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

因此您可以对其进行编辑或创建副本:fab3 或特定于您的环境的版本。