gpt4 book ai didi

python - fabfile 看不到远程环境变量

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:58 24 4
gpt4 key购买 nike

我的远程服务器 (192.168.3.68) 包含在我的 ~/.bashrc 中设置的几个环境变量:

# For instance
export MY_DATABASE_HOST=127.0.0.1

当我将 run('echo $MY_DATABASE_HOST') 放入 fabfile.py 时,它显示:

[192.168.3.68] run: echo $MY_DATABASE_HOST
[192.168.3.68] output:

Done
Disconnecting from 192.168.3.68... done.

我已经尝试在回显之前立即添加 run('source ~/.bashrc') 但没有任何变化。

为什么 ~/.bashrc 中设置的环境变量对 fabfile 不可见?

我该怎么做才能解决这个问题,因为 fabfile 必须能够读取这些变量?

更新

from fabric.context_managers import prefix

# This didn't work
with prefix('source /home/meandme/.bashrc'):
run('echo $MY_DATABASE_HOST')
# This didn't work either
run('source /home/meandme/.bashrc && echo $MY_DATABASE_HOST')

最佳答案

实际上执行的是bashrc。但是它被停止了,因为它没有通过这个交互运行:

case $- in
*i*) ;;
*) return;;
esac

现在我将我的环境变量移到我的 bashrc 顶部后它可以工作了。

这里有更详细的答案https://github.com/fabric/fabric/issues/1519

关于python - fabfile 看不到远程环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39979229/

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