python - .bashrc 中设置的 Fabric 环境变量不可用

标签 python bash python-2.7 deployment fabric

我正在使用 Fab 部署我的应用程序。我的应用程序的运行取决于 $HOME/.bashrc 中设置的一些环境变量。但是,当我使用 fab 使用以下命令运行应用程序时

run("java -jar app.jar")

此应用程序未按预期运行,因为我在 $HOME/.bashrc 中设置的环境变量(如 SMTP_HOST、SMTP_PORT)不适用于此应用程序?

我已经在 $HOME/.bashrc 中设置了环境变量,如下所示

export SMTP_PORT=abc

如何确保在执行 run() 命令以运行应用程序之前设置环境变量?

最佳答案

您可以在.bashrc 中找到以下几行:

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

这意味着 fabric 将永远不会在该 block 之后获取源代码,因为 fabric 运行您的命令非交互式(以 /bin/bash -l - 的形式) c some_command)

所以简单的解决方法是将 export SMTP_PORT=abc 移动到 .bash_profile.profile

关于python - .bashrc 中设置的 Fabric 环境变量不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25478917/

相关文章:

python - 自定义信号未传播

python - ContentFile 未保存在 Django 模型 FileField 中

python - 从 RDF 查询结果打印/解析 JSON 对象

python - 如果在 Pandas 中的字符串末尾,则删除某些字符

bash - 使用 sed 从 csv 文件中删除 "[ and ]"

bash - 使用 scp 将文件从一台服务器复制到另一台服务器时发送密码

linux - awk 没有按预期工作

python - 如何在 Windows git bash 中更改 python 版本?

python-2.7 - Python导入日历错误

Python subprocess.communicate() 不捕获简单二进制文件的输出