Ho virtualenv in esecuzione su Mac OSX (10.8.2), e mentre funziona (posso impostare venvs, passare da una all'altra, attivare e disattivare), l'unica cosa che non funziona (ed è piuttosto fastidiosa) è l'interruttore di richiesta del terminale.Perché virtualenv non imposta il mio terminale?
mia richiesta di base è [\u] \w \n\[\033[0;31m\]$\[\e[0m\]
, che rende come:
[hugo] /current/directory/path/
$
cioè esso ha un'interruzione di linea in esso.
Se posso attivare un virtualenv, mi sarei aspettato:
(myproject)[hugo] /current/directory/path/
$
Ma in realtà io ottenere alcun cambiamento.
Ho aperto lo script /bin/activate
, e guardato il codice:
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
Se mi attengo un'eco in alla fine, posso vedere i che la PS1
var è impostata su (myproject)[\u] \w \n\[\033[0;31m\]$\[\e[0m\]
, ma per qualche motivo che non si blocca, e il PS1 corretto non viene esportato.
Si tratta di qualcosa che riguarda il prompt personalizzato o un problema di autorizzazioni? È chiaramente non una cosa virtuale, come so che funziona (e in effetti funziona sulla mia vagabonda VM, non solo sul mio host OSX).
?
[UPDATE 1]
Il mio errore - sembra che ho un git-aware pronta, che sovrascrive la richiesta in base allo stato directory/repo. Questo è ciò che sta uccidendo il prompt venv. Ora ho solo bisogno di uno che faccia entrambe le cose - quindi, la domanda di follow-up è: qualcuno ha un prompt di colore, git-aware, OSX che si adatta bene con virtualenv.
Yup - grazie - ho lavorato fuori alla fine –
Likewise- ha dovuto perdere tempo a. l'operazione di aggiunta alla fine di .bashrc non ha funzionato direttamente, ma ho copiato questo script (che è lo stesso di "bin/activate" nella cartella virtualenv) direttamente sotto l'altra configurazione del prompt in .bashrc , ma prima dell'esportazione di PS1, e ha funzionato. – Nate
Penso che ci debba essere un punto e virgola aggiunto nell'ultima riga e tra $ PROMPT_COMMAND e add_venv_info per farlo funzionare. – jgosmann