.bash_profile 和 .bashrc 文件中的两个不同的 $WORKON_HOME 和 $PROJECT_HOME 变量

Two different $WORKON_HOME and $PROJECT_HOME variables in .bash_profile and .bashrc files

因为我没有选择,我不得不将 $WORKON_HOMEPROJECT_HOME 变量设置为 .bashrc(本地计算机)和 .bash_profile 中的不同路径(远程机器)文件。

例如:

.bashrc文件中(本地):

export WORKON_HOME="$HOME/home-local/.virtualenvs"
export PROJECT_HOME="$HOME/home-local/venv_projects/"

并且在 bash_profile 一个(远程)中:

export WORKON_HOME="$HOME/.virtualenvs"
export PROJECT_HOME="$HOME/venv_projects/"

我的远程机器安装在本地机器的 home-local 文件夹下。我不能改变这个。

因此,由于我 运行 我的大部分程序都在远程,所以我首先需要在远程机器上创建 virtualenv。

但是,如果我暂时想在本地机器上工作,当我输入 workon env 时,工作目录会更改为 $HOME/.virtualenvs(与在远程机器上一样),而不是 $HOME/home-local/.virtualenvs.我想 WORKON_HOMEPROJECT_HOME 变量与环境有关。

但是有什么办法可以改变吗?

谢谢,

1 个变量不能有 2 个不同的值。但是您可以在值之间切换。放

export WORKON_HOME="$HOME/.virtualenvs"
export PROJECT_HOME="$HOME/venv_projects/"

到文件中,例如“$HOME”/home.sh,并且

export WORKON_HOME="$HOME/home-local/.virtualenvs"
export PROJECT_HOME="$HOME/home-local/venv_projects/"

进入,例如“$HOME”/home-local.sh。现在您可以 source "$HOME"/home.shsource "$HOME"/home-local.shsource 可以缩短为 .: . "$HOME"/home-local.sh.

您可以创建别名或 shell 函数:

home_virt() {
    export WORKON_HOME="$HOME/.virtualenvs"
    export PROJECT_HOME="$HOME/venv_projects/"
}

home_local_virt() {
    export WORKON_HOME="$HOME/home-local/.virtualenvs"
    export PROJECT_HOME="$HOME/home-local/venv_projects/"
}

然后直接调用 home_virthome_local_virt.