2013-04-11 16 views
5

Ho una domanda terminale di base. Ho appena installato Canopy di enthought per Python su Snow Leopard, e (Canopy 64bit) appare continuamente quando lavoro sulla riga di comando.Visualizzazione di "Canopy" sulla riga di comando

EX: (Canopy 64bit) Macbook ~ [username] $

Ho provato modificando il mio file bashrc, senza alcun risultato.

bashrc ha attualmente questo:

# System-wide .bashrc file for interactive bash(1) shells. 
if [ -z "$PS1" ]; then 
    return 
fi 

PS1="Macbook~\u\$" 
# Make bash check its window size after a process completes 
shopt -s checkwinsize 

-

Esiste un modo per fermare "(Canopy 64bit)" dalla visualizzazione?

risposta

1

È in .bash_profile. Ma probabilmente dovrai disconnetterti e tornare indietro affinché abbia effetto, una volta rimosso.

C'è un'opzione quando si installa per rendere Canopy l'ambiente python predefinito. Sfortunatamente, non sembra esserci un modo per cambiarlo nelle impostazioni dell'applicazione.

+0

Questo non solo rimuove il testo aggiuntivo nella PS1, ma cambia anche il PERCORSO, remo ving la directory degli script di canopy dal tuo PATH. Quindi, dovrai fornire il percorso completo a tutti gli script installati da Canopy per eseguirli. – punchagan

1

commento la clausola if a linee 56--70 in

~/Library/Enthought/Canopy_64bit/utente/bin/attivare

+4

oppure impostare la variabile d'ambiente 'VIRTUAL_ENV_DISABLE_PROMPT = true' nel vostro .bashrc o .bash_profile. – punchagan

7

di approfondire risposte precedenti: Canopy si basa su un 3- sistema a strati, il livello 0 contiene il minimo indispensabile per il funzionamento della Canopy GUI; il livello 1 contiene tutti i pacchetti "Sistema", che sono distribuiti con Canopy e possono essere aggiornati quando escono nuove versioni; infine, il livello 2 è l'ambiente "Utente" in cui gli utenti possono installare qualsiasi pacchetto che desiderano. In questo modo, se l'utente installa un pacchetto che interrompe Canopy, si può sempre tornare al livello 1, o addirittura al livello 0 per eseguire un ripristino del sistema.

I tre livelli sono gestiti utilizzando una libreria popolare, virtualenv. In virtualenv, è possibile creare ambienti Python isolati con il proprio set di librerie. Ad esempio, se si stanno sviluppando diverse applicazioni, ognuna delle quali richiede pacchetti in conflitto, è possibile svilupparle in "ambienti virtuali" separati. Usando virtualenv, Canopy è in grado di fare lo stesso: potresti avere più ambienti "Utente" (anche se quella funzione non è ancora visibile attraverso la GUI).

Uno attiva un ambiente virtuale utilizzando lo script "attivazione", che Canopy fa nella .bash_profile linea

~/Library/Enthought/Canopy_64bit/User/bin/activate

come sottolineato da Djon.

Per impostazione predefinita, virtualenv modifica il prompt di bash in modo che sia possibile ricordare l'ambiente virtuale in cui ci si trova, ecco perché viene visualizzato il prompt "(Canopy 64bit)". Per liberarsene, puoi rimuovere la linea da .bash_profile, ma questo significa che dovrai indirizzare manualmente il tuo sistema all'eseguibile python corretto e alle librerie corrette.

soluzione punchagan disattiva semplicemente il default virtualenv pronta, lasciando l'ambiente virtuale Canopy sé intatta:

VIRTUAL_ENV_DISABLE_PROMPT=true

+0

Canopy installa virtualenv da qualche parte? O questo è un comportamento parzialmente simile a virtualenv fornito da Canopy? virtualenv --help non sembra funzionare con la mia installazione di Canopy. –

+0

Canopy utilizza un backport del pacchetto 'venv' che è disponibile in Python 3. Ulteriori informazioni su https://enthought.zendesk.com/entries/21802240-Use-venv-not-virtualenv-with-Canopy-Python – pberkes

1

per sbarazzarsi di l'aggiunta indesiderata per il prompt bash, vicino Canopy e quindi aprire
~/Library/Enthought/Canopy_64bit/User/bin/activate in un editor di testo. Commentare linee come segue (questi non sono commentate in originale):

#if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then 
# _OLD_VIRTUAL_PS1="$PS1" 
# if [ "x(Canopy 64bit) " != x ] ; then 
# PS1="(Canopy 64bit) $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 

Ora chiudere la sessione di bash e riavviarlo. Il prompt tornerà alla normalità.

0

Non è necessario commentare completamente fuori le quelle linee in ~/Library/Enthought/Canopy_64bit/utente/bin/attivare. Ho appena commentato la linea

 #PS1="(Canopz 64bit) $PS1" 

e lo ha sostituito con

PS1="$PS1" 

quindi basta lasciare Canopy fare ciò che ha a che fare, ma sbarazzarsi della anoying testo in eccesso nel prompt.

Migliore.

0

Modifica lo script di attivazione funziona come rispondeva Arkog, ma se quando ho appena commentato la linea ho ottenuto qualcosa di simile:

-bash:/Users // Library/Enthought/Canopy_64bit/utente/bin/attivare: linea 60: errore di sintassi nei pressi di token imprevisto else' -bash: /Users/<username>/Library/Enthought/Canopy_64bit/User/bin/activate: line 60: altro'

Così ho trovato meglio di sostituire solo quella linea con:

$ PS1 = $ PS1

+0

Commentare le righe è un errore di sintassi perché il if non ha alcuna istruzione prima del resto. Puoi sostituirlo con il carattere ':', (l'istruzione NOP bash) o 'true'. Dovresti rimuovere il "$" dall'inizio della sostituzione in modo che non causi un altro errore di sintassi. –