O alias pode ter uma lista de comandos:
alias shazm='source ~/path-to-virtual-environment/bin/activate; cd ~/path-to-master-project-folder; ls -a'
Eu posso ativar o meu ambiente virtual python a partir da sua pasta digitando . bin/activate
. Em vez disso, gostaria de digitar um único alias de palavra, como shazam
, da pasta inicial (ou de qualquer outro lugar) que ativa o ambiente, mude para a pasta do meu projeto principal e liste meus projetos.
Eu tentei criar um alias em .bashrc que apontasse para um arquivo .sh contendo:
cd ~/path-to-virtual-environment
. bin/activate
cd ~/path-to-master-project-folder
ls -a
Eu estava recebendo um erro de permissão negada, então executei chmod u+x <script file>
. O script agora é executado, mas o VE não é ativado e, enquanto as pastas do projeto são listadas, o shell não está na pasta do projeto principal. Eu apreciaria alguma orientação. Obrigado.
OBSERVAÇÃO: recebi uma RESPOSTA em outro fórum. Os scripts do shell não alteram o ambiente do qual são chamados; em vez disso, use uma função de shell dentro de .bashrc.
shazam () {
source ~/path-to-virtual-environment/bin/activate
cd ~/path-to-master-project-folder
ls -a
}
O alias pode ter uma lista de comandos:
alias shazm='source ~/path-to-virtual-environment/bin/activate; cd ~/path-to-master-project-folder; ls -a'
Este é um recurso principal do pacote virtualenvwrapper , juntamente com um conjunto de recursos robusto e complementar.
Para criar um virtualenv chamado shazam
usando virtualenvwrapper, simplesmente:
mkvirtualenv shazam
Para ativá-lo:
workon shazam
Para desativá-lo, como qualquer virtualenv ativo:
deactivate
Muitos casos de uso e configurações de usuário são possíveis usando o virtualenvwrapper. Por exemplo, eu prefiro manter todos os meus virtualenvs em um único diretório, ~/.envs
. Isso é suportado como uma configuração. É um projeto open source e ativamente mantido, não posso recomendá-lo com força suficiente.