Ativar virtualenv usando alias

1

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
}
    
por landrykid 31.12.2017 / 08:42

2 respostas

0

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'
    
por 25.02.2018 / 18:12
0

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.

    
por 27.07.2018 / 18:41