Eu estou usando virtualenv
, virtualenvwrapper
, zsh
,oh-my-zsh
, terminal, em CrunchBang.
Estou tentando exibir o nome da corrente virtualenv
assim
workon example
(example)...
Eu tentei muitas soluções, nenhuma parece funcionar, aqui está o meu arquivo .zshrc , eu sei que não é grande coisa corrigi-lo, mas não consigo encontrar a solução certa. Faz muito tempo desde a última vez que usei o Linux para desenvolvimento do Django, esqueci o que costumava fazer.
Agora, entendo username@crunchbang
, não sei dizer qual virtualenv estou usando.
zsh
python
oh-my-zsh
virtualenv
Lynob
fonte
fonte
Respostas:
Prompt do Shell
Dentro do seu
virtualenv
ambiente há um arquivobin/activate
. Você pode editar este arquivo para alterar seu prompt para o que você quiser. Especificamente esta seção do arquivo:A variável
PS1
é uma variável especial que controla como será o prompt de um shell. Alterar seu valor alterará seuvirtualenv
prompt:Exemplo
Crie um ambiente de amostra.
Quando você está usando,
virtualenv
normalmente obtém esse arquivo.Depois de fazer a alteração acima na variável
PS1
dobin/activate
arquivo, meu prompt agora é o seguinte:Aqui estão as instruções oficiais sobre como fazer isso .
fonte
activate
arquivo? Seu arquivo funcionou bem para mim.virtualenv
está funcionando além do que não vejo nada, talvez seja.zshrc
problema ouvirtualenvwrapper
? esse problema pode ser depurado? observe que eu tenho 2 arquivos executáveis virualenv, o normalvirtualenv
evirtualenv-2.7
isso é normal ouvirtualenv
foi baixado duas vezes? e é assim que eu instalei virtualenv e virualenvwrapper no caso importasudo pip install virtualenv
zsh
e funciona com isso também, então isso é provavelmente um env. questão. Vamos ignorar as duas configurações do virtualenv por enquanto. Para depurar, você pode habilitá-lo,set -x
no seu shell e, em seguida, execute osource activate
comando novamente. Você deve ver asPS1=
linhas em que o prompt está sendo definido.Se você estiver usando
virtualenvwrapper
ezsh
houver vários ganchos zsh no~/.virtualenvs/
diretório, você poderá usar para personalizar seus ambientes. Aqui estão algumas informações sobre isso. Você pode forçar uma atualização paraPS1
que prefixe o trabalho atualvirtualenv
no prompt do shell adicionando:para
~/.virtualenvs/postactivate
. Para remover a marca quando vocêdeactivate
adiciona:para
~/.virtualenvs/postdeactivate
A única coisa (plausível) que deve quebrar isso é contratar recursos
~/.zshrc
enquanto trabalha em umvirtualenv
fonte
Você não precisa editar seu
~/.zshrc
.Como você está trabalhando
virtualenvwrapper
, é possível adicionar opções ou ganchos ao$WORKON_HOME/post(de)activate
arquivos.Se você quiser ver mais detalhes, consulte aqui .
O link acima permite que eu faça o seguinte:
No meu caso,
$WORKON_HOME=~/Envs
porque modifiquei esse caminho ao instalar o virtualenvwrapper; Caso contrário, você deve ter a pasta~/.virtualenvs
.Abra o arquivo
postactivate
localizado em$WORKON_HOME
Adicione estas linhas:
Salve e divirta-se!
Você obterá algo como isto:
(OPCIONAL) Se desejar, você pode editar o
postdeactivate
arquivo para adicionar esta linha:fonte
Acabei de testá-lo no ubuntu 14.04 e tive o mesmo problema. Para corrigi-lo, adicione isso ao seu .zshrc
ou execute isso no terminal
No Mac OS XI tive que fazer
fonte
Se você conhece o tema que está sendo usado, pode adicionar uma função para recuperar o nome base VIRTUAL_ENV ativado e usá-lo na variável PROMPT no arquivo de tema * .zsh localizado em ~ / .oh-my-zsh / themes / e isso deve fazer o truque!
Para mim, foi o tema padrão 'oh-my-zsh', ou seja, 'robbyrussels', que foi configurado.
A adição do código acima gerou o resultado abaixo:
(kunkka.com) é o virtualenv que acabei de desativar.
Após editar o arquivo do tema, não se esqueça de originar o arquivo .zshrc.
fonte