Две разные переменные $ WORKON_HOME и $ PROJECT_HOME в файлах .bash_profile и .bashrc - PullRequest
0 голосов
/ 03 сентября 2018

Поскольку у меня не было выбора, мне пришлось установить переменные $WORKON_HOME и PROJECT_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_HOME и PROJECT_HOME привязаны к среде.

Но есть ли способ изменить это?

Спасибо

1 Ответ

0 голосов
/ 03 сентября 2018

Вы не можете иметь 2 разных значения для 1 переменной. Но вы можете переключаться между значениями. Помещенный

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.sh или source "$HOME"/home-local.sh. И source можно сократить до .: . "$HOME"/home-local.sh.

Вместо этого вы можете создавать псевдонимы или функции оболочки:

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_virt или home_local_virt.

...