Активируйте virtualenv используя псевдоним

Я могу активировать свою виртуальную среду Python из ее папки, введя . bin/activate, Вместо этого я хотел бы ввести псевдоним одного слова, например shazamиз домашней папки (или где-либо еще), которая активирует среду, изменяет папку моего главного проекта и перечисляет мои проекты.

Я попытался создать псевдоним в.bashrc, который указывает на файл.sh, содержащий:

cd ~/path-to-virtual-environment
. bin/activate
cd ~/path-to-master-project-folder
ls -a

Я получаю ошибку "Отказано в разрешении", поэтому я запустил chmod u+x <script file>, Сценарий теперь выполняется, но VE не активируется, и пока папки проекта указаны в списке, оболочка отсутствует в папке главного проекта. Буду признателен за некоторые рекомендации. Благодарю.

ПРИМЕЧАНИЕ: я получил ОТВЕТ на другом форуме. Сценарии оболочки не изменяют среду, из которой они вызваны; вместо этого используйте функцию оболочки внутри.bashrc.

shazam () {
  source ~/path-to-virtual-environment/bin/activate
  cd ~/path-to-master-project-folder
  ls -a
}

2 ответа

Псевдоним может иметь список команд:

alias shazm='source ~/path-to-virtual-environment/bin/activate; cd ~/path-to-master-project-folder; ls -a'

Это основная особенность пакета virtualenvwrapper вместе с надежным, дополнительным набором функций.

Создать виртуалку по имени shazam используя virtualenvwrapper, просто:

mkvirtualenv shazam

Чтобы активировать это:

workon shazam

Чтобы деактивировать его, как и любой активный virtualenv:

deactivate

Многие сценарии использования и пользовательские конфигурации возможны при использовании virtualenvwrapper. Например, я предпочитаю хранить все мои virtualenvs в одном каталоге, ~/.envs, Это поддерживается как конфигурация. Это проект с открытым исходным кодом и активно поддерживаемый, я не могу рекомендовать его достаточно сильно.

Другие вопросы по тегам