virtualenv-sh is een vervanging voor de eerbiedwaardige virtualenvwrapper & nbsp; (een set shell-functies om het gebruik van virtualenv vergemakkelijken).
Developer reacties
Net als veel, heb ik virtualenvwrapper jarenlang gebruikt, maar het is geworden een beetje zwaar in de tijd. Uiteindelijk heb ik vond mezelf te lang wachten op nieuwe schelpen op te starten, ook al heb ik de neiging om alleen de basis functies te gebruiken.
Dit project is een poging om dat probleem op te lossen. Ik leende de slimme stukjes virtualenvwrapper, weggegooid alles wat ik beschouwd als duur of gewoon niet interessant, en een functie of twee van mijn eigen toegevoegd. De nummer een prioriteit van dit project is de snelheid. De code is bijna zuiver shell script, hoewel er één of twee aanroepen van standaard tools zoals grep of sed kunnen zijn.
Wees gewaarschuwd dat deze implementatie niet voor u kan zijn. Ik kan hebben gekregen ontdoen van een functie die je leuk vond, hetzij omdat het duur was of omdat ik gewoon niet schelen. Ik kan per ongeluk weggegooid een fix of workaround voor sommige omgeving die ik nog niet tegengekomen. Ik kan gewoon hebben ingevoerd nieuwe bugs (shell is een makkelijke taal verkeerd in subtiele manieren om te krijgen). Ga op uw eigen risico.
Het installeren
virtualenv-sh kan worden geïnstalleerd met pip of easy_install. Om het te gebruiken, moet u een enkele shell script bron in je shell-omgeving. Standaard pip of easy_install moet installeren in / usr / local / bin. Als u gebruik maakt bash of zsh, moet je de shell-specifieke script importeren; anders is, kunt u de generieke proberen. Voeg een van de volgende handelingen uit om init script van je shell (Bashrc, .zshrc, enz.):
. /usr/local/bin/virtualenv-sh.bash
. /usr/local/bin/virtualenv-sh.zsh
. /usr/local/bin/virtualenv-sh.sh
Niets anders is vereist. Er is maar een omgeving variabele die je kunt gebruiken voor de configuratie, dat is WORKON_HOME. Dit is een pad aan uw collectie van virutalenvs; kunt u deze leeg laten om de standaard van $ {HOME} /. virtualenvs accepteren. Aangenomen wordt dat virtualenv zelf is in je pad.
WORKON_HOME = $ {HOME} /. Virtualenvs
zsh
Als u gebruik maakt zsh, kunt u in plaats daarvan gebruik maken van de vooraf gecompileerde functie archief voor optimale prestaties, maar dit moet worden samengesteld op basis van de bron op uw machine. U kunt de bron direct te downloaden of te proberen:
pip installeren --upgrade --no-install virtualenv-sh
cd build / virtualenv-sh
sudo make install
Dit zal zsh vinden op je pad, gebruik het om virtualenv-sh.zwc compileren en installeren in / usr / local / bin. U kunt nu automatisch laden van deze functies en initialiseren virtualenv-sh. U kunt verwijzen naar de paragraaf over de functie autoloading in de zsh handleiding als je niet bekend bent met dit proces:
# Configure alle virtualenv-sh functies voor autoloading
fpath = (/ usr / local / bin / virtualenv-sh $ fpath)
autoload -w / usr / local / bin / virtualenv-sh
# Bel de voornaamste initialisatie functie
virtualenv_sh_init
Gebruik
De basiscommando's van virtualenv-sh zijn in wezen hetzelfde als virtualenvwrapper. Hier volgt een korte samenvatting:
& Nbsp; mkvirtualenv
& Nbsp; Maakt een nieuwe virtual_env in $ WORKON_HOME. Alle argumenten worden direct doorgegeven aan virtualenv. De nieuwe virtual_env zal actief worden. In tegenstelling tot virtualenvwrapper, dit duurt geen extra argumenten.
& Nbsp; rmvirtualenv
& Nbsp; Wist een bestaande virtual_env. Als dit virtual_env momenteel actief is, wordt het eerst gedeactiveerd als een welkomstpakket.
& Nbsp; Workon [
& Nbsp; activeert de naam virtual_env. Als een andere virtual_env momenteel actief is, zal het eerst worden gedeactiveerd. Zonder argumenten, zal het een lijst van de beschikbare virtual_envs.
& Nbsp; autoworkon
& Nbsp; Stelt automatisch de virtual_env op basis van speciale bestanden. Zie onder.
& Nbsp; deactiveren
& Nbsp; Schakelt de huidige virtual_env (zoals bij het gebruik van virtualenv rechtstreeks).
& Nbsp; lsvirtualenvs
& Nbsp; drukt u een lijst van de virtual_envs die je hebt gemaakt.
& Nbsp; cdvirtualenv [subdir]
& Nbsp; Wijzigt de huidige map naar de root van de actieve virtual_env, of een submap daarvan.
& Nbsp; lssitepackages
& Nbsp; Geeft een overzicht van de inhoud van het actieve virtual_env de site-packages directory.
& Nbsp; cdsitepackages [subdir]
& Nbsp; Wijzigt de currect directory naar de site-packages directory van de actieve virtual_env, of een submap daarvan.
Haken
virtualenv-sh ondersteunt dezelfde globale en lokale (per-env) haken als virtualenvwrapper. Global haken zijn bestanden in $ WORKON_HOME; lokale haken zijn bestanden in $ WORKON_HOME / {virtual_env} / bin. Haken zijn uitgevoerd door sourcing ze in de huidige shell context.
& Nbsp; initialiseren (globale)
& Nbsp; Called aan het einde van virtualenv_sh_init.
& Nbsp; premkvirtualenv, postmkvirtualv, prermvirtualenv, postmkvirtualenv (globale)
& Nbsp; Called aan het begin en einde van mkvirtualenv en rmvirtualenv.
& Nbsp; preactivate, postactivate (globaal, lokaal); predeactivate, postdeactivate (lokaal, mondiaal)
& Nbsp; Genaamd in de aangegeven volgorde om het in- en uitschakelen van een virtual_env.
Daarnaast virtualenv-sh zorgt voor dynamisch registreren functies genoemd te worden bij het uitvoeren van haken:
virtualenv_sh_add_hook
virtualenv_sh_remove_hook
bijv .:
my_virtualenv_cleanup ()
{
& Nbsp; # Doe wat spullen hier
}
virtualenv_sh_add_hook postdeactivate my_virtualenv_cleanup
Geregistreerd haak functies worden altijd uitgevoerd na alle globale en lokale hook scripts.
autoworkon
autoworkon is een nieuwe opdracht die wordt ontworpen om uw virtual_env automatisch worden bijgewerkt op basis van uw huidige directory. Merk op dat er geen standaard shell mechanisme voor het uitvoeren van een functie bij de huidige directory veranderingen - en vele schelpen niet een dergelijk mechanisme hebben - dus deze installatie is aan jou. Als u gebruik maakt zsh, zou je gebruiken:
autoload -U add-zsh-haak
add-zsh-hook chpwd autoworkon
De autoworkon functie zal lopen het bestandssysteem van de huidige directory totdat het ofwel een item genaamd ".workon" bereikt de root of vindt. Als dit een leesbaar bestand wordt de eerste regel de naam van een virtual_env behandelen en activeren. Er zijn een paar speciale regels in gedachten te houden:
- Autoworkon stopt altijd bij de eerste .workon het vindt. Het is volkomen redelijk om .workon bestanden op meerdere punten in een directory-structuur om verschillende virtual_envs gebruiken op verschillende niveaus hebben.
- Een lege of onleesbare .workon bestand wordt geïnterpreteerd als "geen virtual_env". Dit is handig als u de automatische virtual_env in een bepaalde submap deactiveren.
- Als u een virtual_env handmatig te activeren, zal autoworkon nooit overschrijven. . autoworkon verandert alleen uw actieve virtual_env als het is uitgeschakeld of werd eerder door autoworkon ingesteld
Eisen
- Python
Reacties niet gevonden