virtualenv-sh è un sostituto per il venerabile virtualenvwrapper & nbsp; (un insieme di funzioni di shell per facilitare l'uso di virtualenv).
Commenti sviluppatori
Come molti, ho usato virtualenvwrapper per anni, ma si è ottenuto un po 'pesante nel corso del tempo. Alla fine ho trovato me stesso in attesa troppo a lungo per i nuovi gusci di avvio, anche se ho la tendenza a utilizzare solo le funzioni di base.
Questo progetto è un tentativo di risolvere il problema. Ho preso in prestito i bit intelligenti di virtualenvwrapper, scartato tutto quello che consideravo costosi o semplicemente non interessante, e ha aggiunto una caratteristica o due dei miei. La priorità numero uno di questo progetto è la velocità. Il codice di script è quasi puro di shell, anche se ci possono essere uno o due invocazioni di strumenti standard come grep o sed.
Sappiate che questa implementazione non può essere per voi. Forse ho deciso di eliminare una funzione che ti è piaciuto, o perché era costoso o perché semplicemente non mi importa niente. Forse ho accidentalmente scartato una correzione o una soluzione alternativa per alcuni ambienti che non ho incontrato. Forse ho appena introdotto nuovi bug (shell è una lingua facile da sbagliare in modo sottile). Procedete a vostro rischio e pericolo.
Installazione
virtualenv-sh può essere installato con pip o easy_install. Per utilizzarlo, è necessario procurarsi un singolo script di shell nel vostro ambiente di shell. Per impostazione predefinita, pip o easy_install dovrebbe installarlo in / usr / local / bin. Se stai usando bash o zsh, è necessario importare lo script specifico guscio; in caso contrario, si può provare quello generico. Aggiungere uno dei seguenti script di init della shell (.bashrc, .zshrc, etc.):
. /usr/local/bin/virtualenv-sh.bash
. /usr/local/bin/virtualenv-sh.zsh
. /usr/local/bin/virtualenv-sh.sh
È necessaria Nient'altro. C'è solo una variabile d'ambiente che è possibile utilizzare per la configurazione, che è WORKON_HOME. Si tratta di un percorso per la vostra collezione di virutalenvs; si può lasciare vuoto per accettare il default di $ {HOME} /. virtualenvs. Si presume che virtualenv stesso è nel tuo percorso.
WORKON_HOME = $ {HOME} /. Virtualenvs
zsh
Se stai usando zsh, è possibile invece utilizzare l'archivio funzione precompilato per ottenere prestazioni ottimali, anche se questo deve essere compilato dai sorgenti sulla vostra macchina. È possibile scaricare il sorgente direttamente o provare:
pip installare --upgrade --no-install-sh virtualenv
cd build / virtualenv-sh
sudo make install
Questo troverà zsh nel percorso, utilizzarlo per compilare virtualenv-sh.zwc, e installarlo in / usr / local / bin. È ora possibile autoload queste funzioni e inizializzare virtualenv-sh. Si consiglia di consultare la sezione sulla funzione-caricamento nel manuale zsh se non hai familiarità con questo processo:
# Configurare tutte le funzioni virtualenv-sh per autoloading
fpath = (/ usr / / bin / sh-virtualenv locale $ fpath)
autoload -w / usr / local / bin / sh virtualenv-
# Chiama la funzione di inizializzazione principale
virtualenv_sh_init
con
I comandi base di virtualenv-sh sono essenzialmente le stesse virtualenvwrapper. Ecco un breve riassunto:
& Nbsp; mkvirtualenv
& Nbsp; Crea un nuovo virtual_env in $ WORKON_HOME. Tutti gli argomenti vengono passati direttamente a virtualenv. Il nuovo virtual_env diventerà attivo. A differenza virtualenvwrapper, questo non accetta argomenti aggiuntivi.
& Nbsp; rmvirtualenv
& Nbsp; Elimina un virtual_env esistente. Se questo virtual_env è attualmente attivo, viene disattivato prima come cortesia.
& Nbsp; workon [
& Nbsp; di attivare il virtual_env nome. Se un altro virtual_env è attualmente attiva, verrà disattivata prima. Senza argomenti, verranno mostrati i virtual_envs disponibili.
& Nbsp; autoworkon
& Nbsp; Imposta automaticamente la virtual_env basata su file speciali. Vedi sotto.
& Nbsp; disattivare
& Nbsp; Disattiva il virtual_env corrente (come quando si usa virtualenv direttamente).
& nbsp; lsvirtualenvs
& Nbsp; di stampare un elenco dei virtual_envs che hai creato.
& Nbsp; cdvirtualenv [sottodirectory]
& Nbsp; Cambia la directory corrente alla radice del virtual_env attiva, o una sottodirectory della stessa.
& nbsp; lssitepackages
& Nbsp; Elenca il contenuto della directory site-packages del virtual_env attiva.
& Nbsp; cdsitepackages [sottodirectory]
& Nbsp; Cambia la directory currect alla directory site-packages della virtual_env attiva, o una sottodirectory della stessa.
Ganci
virtualenv-sh supporta gli stessi globali e locali (per-ENV) ganci come virtualenvwrapper. Ganci globali sono file in $ WORKON_HOME; ganci locali sono file in $ WORKON_HOME / {virtual_env} / bin. Ganci sono eseguiti da loro approvvigionamento nel contesto attuale shell.
& Nbsp; inizializzare (globale)
& Nbsp; Chiamato a fine virtualenv_sh_init.
& Nbsp; premkvirtualenv, postmkvirtualv, prermvirtualenv, postmkvirtualenv (globale)
& Nbsp; Chiamato all'inizio e alla fine del mkvirtualenv e rmvirtualenv.
& Nbsp; preattivare, PostActivate (globale e locale); predeactivate, postdeactivate (locale, globale)
& Nbsp; Chiamato nell'ordine indicato intorno attivazione e la disattivazione di un virtual_env.
Inoltre, virtualenv-sh consente di registrare dinamicamente funzioni da chiamare quando l'esecuzione di ganci:
virtualenv_sh_add_hook
virtualenv_sh_remove_hook
es .:
my_virtualenv_cleanup ()
{
& Nbsp; # fare alcune cose qui
}
virtualenv_sh_add_hook postdeactivate my_virtualenv_cleanup
Funzioni hook registrati vengono sempre eseguiti dopo tutti gli script hook globali e locali.
autoworkon
autoworkon è un nuovo comando che è stato progettato per aggiornare automaticamente il virtual_env base alla directory corrente. Si noti che non esiste un meccanismo shell standard per l'esecuzione di una funzione quando le attuali modifiche alla directory - e molte conchiglie non hanno un tale meccanismo - così l'installazione di questo sta a voi. Se stai usando zsh, si usa:
autoload -U add-zsh-hook
add-zsh-hook chpwd autoworkon
La funzione autoworkon camminerà il filesystem dalla directory corrente fino a quando non sia raggiunto il root o trova un oggetto chiamato ".workon". Se questo è un file leggibile, verrà trattato prima riga del nome di un virtual_env e attivarlo. Ci sono un paio di regole speciali da tenere a mente:
- Autoworkon ferma sempre al primo .workon che trova. E 'perfettamente ragionevole avere file .workon in più punti in un albero di directory per utilizzare diversi virtual_envs a diversi livelli.
- Un file .workon vuoto o illeggibile viene interpretato come "no virtual_env". Questo è utile se si desidera disattivare il virtual_env automatica in un particolare sottostruttura.
- Se si attiva un virtual_env manualmente, autoworkon sarà mai ignorarlo. . autoworkon solo cambiare il vostro virtual_env attivo se non è impostata o è stato precedentemente impostato dal autoworkon
Requisiti :
- Python
I commenti non trovato