gpt4 book ai didi

python - Fabric:意外标记附近的语法错误 '('

转载 作者:行者123 更新时间:2023-12-01 04:37:23 25 4
gpt4 key购买 nike

我有这样的fabfile.py:

from fabric.api import *

def deploy():
with prefix('source venv/bin/activate'):
local('pex -r <(cat requirements.txt) . -o app.pex')

当我运行$ fab deploy时我得到:

$ fab deploy
[localhost] local: pex -r <(cat requirements.txt) . -o app.pex
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `source venv/bin/activate && pex -r <(cat requirements.txt) . -o app.pex'

Fatal error: local() encountered an error (return code 1) while executing 'pex -r <(cat requirements.txt) . -o app.pex'

Aborting.

命令source venv/bin/activate && pex -r <(cat requirements.txt) . -o app.pex在 shell 中运行正常。我是 Fabric 新手。这里出了什么问题?

最佳答案

fabric.operations.local() function默认情况下使用 /bin/sh 作为 shell 来运行命令。这个基本 shell 不支持 /bin/bash 所支持的所有语法。

如果您必须有权访问 Bash shell 语法,请设置 shell='/bin/bash':

local('pex -r <(cat requirements.txt) . -o app.pex', shell='/bin/bash'))

关于python - Fabric:意外标记附近的语法错误 '(',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com