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

967
landrykid

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

2 ответа на вопрос

0
Tomasz Jakub Rup

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

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

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

Чтобы создать имя shazamvirtualenv с помощью virtualenvwrapper, просто:

mkvirtualenv shazam 

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

workon shazam 

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

deactivate 

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

Похожие вопросы