VirtualEnv
Virutalenv és una utilitat per crear entorns Python aïllats. Això amb s’aconsegueix poder instal·lar tots les llibreries de Python que es desitgin sense que aquest afectin a la resta del paquets del sistema. Gracies a virtualenv poden conviure de dos versions de la mateixa llibreria, en dos entorns diferents, sense que aquestes causin cap tipus de problema.
Pip
Pip és una utilitat per instal·lar paquets de python (i les seves dependències). Gràcies a pip podem instal·lar, actualitzar i desinstal·lar paquets d’una forma facil. Pip està integrat amb PyPI, un dipòsit que recull i indexa paquets de Python. PyPi prové de les sigles Índex de paquets de Python (Python Package Index en anglès) i actualment allotja més de 19.000 paquets. Gràcies a que pip s’integra amb PyPI, podem buscar paquets simplement utilitzant la comanda:
pip search <nom_del_paquet>
Pip per defecte ens instal·larà la última versió del paquet que es troba al PyPI, però també es pot indicar que es vol instal·lar una versió especifica, o una ruta alternativa on trobar el paquets. Aquestes rutes poden ser locals o d’un sistema de control de versions (actualment suporta Subversion, Mercurial, Git, and Bazaar).
Així una vegada s’han instal·lat tots els paquets pip també es capaç de dir-nos quins paquets s’han instal·lat, conjuntament amb la seva versió. Si aquest paquets s’han instal·lat desde una ruta específica o d’un sistema de control de versión pip també s’hen recorda de la ruta exacta des d’on s’ha instal·lat.
Podeu trobar una llista complerta de les funcionalitats de pip a la seva documentació.
Desplegar els projectes de django.
Aquests dos utilitats ens són molt útils per a desplegar projectes de django i que actualitzar-los d’una forma fàcil. Així quan es comença a desenvolupar un projecte de django el primer que s’ha de fer es crear un virtualenv per tenir aïllats tots els paquets que s’instal·lin. També es molt recomanable pujar el projecte (no les seves dependències) a un sistema de control de versions. Es recomanable adjuntar al sistema de control de versions un fitxer on es guardin totes les dependències que requereix el nostre projecte. Aquestes dependències les podrem obtenir amb la comanda:
pip freeze -l > <nom_del_fitxer>
Per convenció s’utilitza requirements.txt com a nom del fitxer.
Si seguim aquestes bones practiques podrem desplegar el nostre paquet d’una forma fàcil. Primer hem de crear un virtualenv per aïllar els nostres paquets del sistema i desprès descarregar la última versió (o la que es vulgui desplegar) del sistema de control de versions. Una vegada realitzats aquests passos simplement haurem d’executar la comanda:
pip install -r requirements.txt
Aquesta comanda s’encarrega d’instal·lar tots els paquets necessaris per al funcionament del nostre projecte. A més a més s’assegura que les versions de les llibreries són exactament les mateixes que les que tenim al nostre entorn de desenvolupament, per la qual cosa no hi haurà cap tipus de diferència entre ambdós sistemes.