2

Я могу активировать свою виртуальную среду 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 ответа2

0

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

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

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

Чтобы создать virtualenv с именем shazam с помощью virtualenvwrapper, просто:

mkvirtualenv shazam

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

workon shazam

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

deactivate

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .