Commit b442bed4 authored by Fedrico Otaran's avatar Fedrico Otaran
Browse files

Completo guía de instalación de Python

parent 225c709d
......@@ -2,26 +2,29 @@
"cells": [
{
"cell_type": "markdown",
"id": "vocational-pakistan",
"id": "alone-toner",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"tags": []
},
"source": [
"# Guía de Git\n",
"\n",
"En la explicación práctica hablaremos sobre los conceptos de git y cómo iniciar un repositorio.\n",
"\n",
"<img src=\"https://i.imgur.com/XlxmtFT.png?1\" title=\"source: imgur.com\" />"
]
},
{
"cell_type": "markdown",
"id": "guided-chick",
"id": "listed-motion",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"tags": []
},
"source": [
"# Antes de empezar\n",
......@@ -34,7 +37,7 @@
},
{
"cell_type": "markdown",
"id": "suspected-order",
"id": "natural-filling",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -46,7 +49,7 @@
},
{
"cell_type": "markdown",
"id": "mighty-house",
"id": "temporal-hepatitis",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -60,7 +63,7 @@
},
{
"cell_type": "markdown",
"id": "confused-spare",
"id": "forbidden-slovenia",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -72,7 +75,7 @@
},
{
"cell_type": "markdown",
"id": "neural-lucas",
"id": "injured-documentation",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -85,7 +88,7 @@
},
{
"cell_type": "markdown",
"id": "mature-affect",
"id": "lined-vacuum",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -98,7 +101,7 @@
},
{
"cell_type": "markdown",
"id": "cross-schema",
"id": "instructional-profession",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -111,7 +114,7 @@
},
{
"cell_type": "markdown",
"id": "bulgarian-angle",
"id": "rental-native",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -124,7 +127,7 @@
},
{
"cell_type": "markdown",
"id": "clean-petroleum",
"id": "happy-steps",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -137,7 +140,7 @@
},
{
"cell_type": "markdown",
"id": "listed-relationship",
"id": "closing-reverse",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -149,7 +152,7 @@
},
{
"cell_type": "markdown",
"id": "separate-greek",
"id": "moderate-conference",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -161,7 +164,7 @@
},
{
"cell_type": "markdown",
"id": "restricted-bacon",
"id": "eligible-angel",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -176,7 +179,7 @@
},
{
"cell_type": "markdown",
"id": "solid-local",
"id": "sensitive-optics",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -188,7 +191,7 @@
},
{
"cell_type": "markdown",
"id": "bridal-dispatch",
"id": "appreciated-surface",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -200,7 +203,7 @@
},
{
"cell_type": "markdown",
"id": "first-release",
"id": "advised-champagne",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -214,7 +217,7 @@
},
{
"cell_type": "markdown",
"id": "invalid-diamond",
"id": "buried-period",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -238,7 +241,7 @@
},
{
"cell_type": "markdown",
"id": "strategic-episode",
"id": "compliant-travel",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -259,7 +262,7 @@
},
{
"cell_type": "markdown",
"id": "robust-metabolism",
"id": "democratic-subscription",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -273,7 +276,7 @@
},
{
"cell_type": "markdown",
"id": "royal-singles",
"id": "cross-scene",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -290,11 +293,12 @@
},
{
"cell_type": "markdown",
"id": "asian-point",
"id": "canadian-webcam",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"tags": []
},
"source": [
"\n",
......@@ -302,8 +306,8 @@
"\n",
"En git cuando se va a realizar una operación para generar una nueva versión del código es necesario contar con información de usuario. Por esto es necesario que configuremos lo siguiente:\n",
"\n",
"`$ git config --global user.name \"John Doe\"\n",
" $ git config --global user.email johndoe@example.com`\n",
"`$ git config --global user.name \"John Doe\"`\n",
"`$ git config --global user.email johndoe@example.com`\n",
"\n",
"Para ver la configuración:\n",
"\n",
......@@ -312,7 +316,7 @@
},
{
"cell_type": "markdown",
"id": "honest-tension",
"id": "fifth-interaction",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -326,7 +330,7 @@
},
{
"cell_type": "markdown",
"id": "defined-anthropology",
"id": "freelance-treasury",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -335,9 +339,7 @@
"source": [
"Crear un repositorio local con Git en tu máquina dentro de un directorio llamado `ejemplo_python`. \n",
"\n",
" `\n",
"$ mkdir ejemplo_python\n",
" `\n",
"`$ mkdir ejemplo_python`\n",
"\n",
"Movete dentro de este directorio.\n",
"\n",
......@@ -347,7 +349,7 @@
},
{
"cell_type": "markdown",
"id": "closed-sewing",
"id": "architectural-writer",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -362,12 +364,12 @@
" \n",
"![Imgur](https://i.imgur.com/rLZ8qyD.png)\n",
"\n",
"Podemos ver que se creó en este directorio una carpeta oculta con el nombre .git/. Esto significa que este directirio está habilitado para ser versionado con Git."
"Podemos ver que se creó en este directorio una carpeta oculta con el nombre `.git/`. Esto significa que este directirio está habilitado para ser versionado con Git."
]
},
{
"cell_type": "markdown",
"id": "european-brand",
"id": "suspected-imaging",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -383,7 +385,7 @@
},
{
"cell_type": "markdown",
"id": "wicked-ballot",
"id": "vocal-tours",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -392,6 +394,7 @@
"source": [
"Ahora si ejecutamos git status vamos a ver que Git detecto que hay un nuevo archivo que aún no está versionado en nuestro directorio.\n",
"Ahora notarás que hay cambios en tu repositorio Git local:\n",
"\n",
"![Imgur](https://i.imgur.com/RheTUM7.png)\n",
"\n",
"Recorda siempre elegir un mensaje adecuado para los commits cuando uses Git."
......@@ -399,7 +402,7 @@
},
{
"cell_type": "markdown",
"id": "eastern-sampling",
"id": "written-consciousness",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -410,8 +413,9 @@
"\n",
"```\n",
"$ git add app.py\n",
" ```\n",
" Volvemos a ejecutar el comando `git status` para ver que información nos da Git ahora de este archivo.\n",
"```\n",
"\n",
"Volvemos a ejecutar el comando `git status` para ver que información nos da Git ahora de este archivo.\n",
" \n",
"\n",
" ![Imgur](https://i.imgur.com/037usjG.png)\n",
......@@ -420,7 +424,7 @@
},
{
"cell_type": "markdown",
"id": "prepared-headquarters",
"id": "guilty-edwards",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -436,7 +440,7 @@
},
{
"cell_type": "markdown",
"id": "later-perth",
"id": "fuzzy-booth",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -449,7 +453,7 @@
},
{
"cell_type": "markdown",
"id": "nominated-conservation",
"id": "commercial-growth",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -464,7 +468,7 @@
},
{
"cell_type": "markdown",
"id": "fantastic-relief",
"id": "technical-blast",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -472,12 +476,13 @@
},
"source": [
"Crea un segundo commit\n",
"\n",
"<img src=\"https://i.imgur.com/fq8mFKu.png\" title=\"source: imgur.com\" width=\"700\"/>"
]
},
{
"cell_type": "markdown",
"id": "dying-imaging",
"id": "overhead-niger",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -494,7 +499,7 @@
},
{
"cell_type": "markdown",
"id": "blank-fifty",
"id": "choice-tradition",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -506,7 +511,7 @@
},
{
"cell_type": "markdown",
"id": "british-target",
"id": "listed-monaco",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -522,7 +527,7 @@
},
{
"cell_type": "markdown",
"id": "engaging-survey",
"id": "arabic-limitation",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -538,7 +543,7 @@
},
{
"cell_type": "markdown",
"id": "accompanied-ballet",
"id": "second-wesley",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -558,7 +563,7 @@
},
{
"cell_type": "markdown",
"id": "third-caution",
"id": "informative-compatibility",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -571,7 +576,7 @@
},
{
"cell_type": "markdown",
"id": "mighty-fundamentals",
"id": "dominant-program",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -583,7 +588,7 @@
},
{
"cell_type": "markdown",
"id": "obvious-wesley",
"id": "nominated-majority",
"metadata": {
"slideshow": {
"slide_type": "fragment"
......@@ -605,7 +610,7 @@
},
{
"cell_type": "markdown",
"id": "criminal-conflict",
"id": "undefined-carolina",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -626,7 +631,7 @@
},
{
"cell_type": "markdown",
"id": "given-nowhere",
"id": "international-shield",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -645,7 +650,7 @@
},
{
"cell_type": "markdown",
"id": "welsh-alberta",
"id": "assumed-inspection",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -657,12 +662,13 @@
"Y además vamos a crear un nuevo archivo `README.md` para agregarle documentación a nuestro proyecto.\n",
"\n",
"`vi README.md`\n",
"\n",
"<img src=\"https://i.imgur.com/uuvR3Ug.png\" title=\"source: imgur.com\" />"
]
},
{
"cell_type": "markdown",
"id": "drawn-geography",
"id": "statewide-madrid",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -671,6 +677,7 @@
"source": [
"\n",
"Ahora si ejecutamos `git status` veremos cuales fueron las modificaciones que aplicamos a nuestro repositorio local.\n",
"\n",
"<img src=\"https://i.imgur.com/0F1Bt1t.png\" title=\"source: imgur.com\" />\n",
"\n",
"Para sumar estos cambios a git ejecutamos `git add`.\n",
......@@ -681,7 +688,7 @@
},
{
"cell_type": "markdown",
"id": "sacred-means",
"id": "romantic-weapon",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -699,7 +706,7 @@
},
{
"cell_type": "markdown",
"id": "functional-level",
"id": "behavioral-screw",
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -716,21 +723,13 @@
},
{
"cell_type": "markdown",
"id": "hundred-somalia",
"id": "commercial-cream",
"metadata": {},
"source": [
"### Info\n",
"\n",
"Tené en cuenta que no es necesario subir cada un commit, podemos acumular localmente una serie de commits para luego aplicar los cambios en el servidor"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "chicken-louis",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
......@@ -750,7 +749,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
"version": "3.8.3"
}
},
"nbformat": 4,
......
......@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "markdown",
"id": "straight-jewelry",
"id": "cardiac-concept",
"metadata": {},
"source": [
"# Instalación de Python\n"
......@@ -10,16 +10,16 @@
},
{
"cell_type": "markdown",
"id": "streaming-lyric",
"id": "quality-camel",
"metadata": {},
"source": [
"\n",
"**Tener en cuenta** que esta guía de instalación de Python no hace falta si se utilza la máquina virtual que entregamos en la cátedra para trabajar dado que tiene todo instalado. La máquina virtual la pueden descargar desde [aquí](https://catedras.linti.unlp.edu.ar/mod/url/view.php?id=29517).\n"
"> **Tener en cuenta** que esta guía de instalación de Python no hace falta si se utilza la máquina virtual que entregamos en la cátedra para trabajar dado que tiene todo instalado. La máquina virtual la pueden descargar desde [aquí](https://catedras.linti.unlp.edu.ar/mod/url/view.php?id=29517).\n"
]
},
{
"cell_type": "markdown",
"id": "accessory-minutes",
"id": "lyric-donor",
"metadata": {},
"source": [
"## Contenido de la guía\n",
......@@ -28,7 +28,7 @@
},
{
"cell_type": "markdown",
"id": "competent-bumper",
"id": "residential-recognition",
"metadata": {},
"source": [
"## Objetivo\n",
......@@ -37,15 +37,13 @@
"Veremos por separado para:\n",
"\n",
"* Linux y MacOS.\n",
"\n",
"de\n",
"* Windows\n",
"------------------------------------"
]
},
{
"cell_type": "markdown",
"id": "damaged-ferry",
"id": "numeric-george",
"metadata": {},
"source": [
"El mecanismo para esto es utilizar una herramienta de manejo de versiones para python (Python Versión Manager) en los sistemas operativos **Linux y MacOS**.\n",
......@@ -55,118 +53,107 @@
},
{
"cell_type": "markdown",
"id": "educated-quarter",
"metadata": {},
"source": [
"## ¿Por qué usar una herramienta para manejar versiones?\n",
"* Instalar prácticamente cualquier versión de Python (o del lenguaje que sea)\n",
"* Tener instaladas múltiples versiones"
]
},
{
"cell_type": "markdown",
"id": "median-birth",
"id": "lonely-revolution",
"metadata": {},
"source": [
"La herramienta que vamos a usar es [pyenv](https://python-unlp.github.io/guides/instalar_python/git@github.com:pyenv/pyenv.git)\n"
]
},
{
"cell_type": "markdown",
"id": "organizational-undergraduate",
"metadata": {},
"source": [
"## Linux y MacOS\n",
"* Instalación con Git (Linux y MacOS) `RECOMENDADA`\n",
"## ¿Por qué usar una herramienta para menejar versiones?\n",
"\n",
"La idea de usar este tipo de herramientas son:\n",
"\n",
"- Instalar prácticamente cualquier versión de Python (o del lenguaje que sea)\n",
"- Tener instaladas multiples versiones\n",
"\n",
"Hacer el checkout de pyenv en el directorio donde quieras que se instale. Un buen lugar puede ser $HOME/.pyenv.\n",
"Otro objetivo para esta cátedra es lograr que todos ustedes tengan exactamente\n",
"la misma versión de Python.\n",
"\n",
"`git clone https://github.com/pyenv/pyenv.git ~/.pyenv`\n",
"La herramienta que vamos a usar es [`pyenv`](git@github.com:pyenv/pyenv.git)\n",
"\n",
"Define la variable de entorno PYENV_ROOT para tener disponible el path donde fue clonado el repositorio y agrega:\n",
"\n",
"`$PYENV_ROOT/bin `\n",
"## Linux y MacOS\n",
"\n",
"a la variable $PATH para tener acceso al comando pyenv en la terminal.\n",
"### Instalación con Git (Linux y MacOS) RECOMENDADA\n",
"\n",
"`echo 'export PYENV_ROOT=\"$HOME/.pyenv\"' >> ~/.bash_profile`\n",
"Hacer el checkout de `pyenv` en el directorio donde quieras que se instale.\n",
"Un buen lugar puede ser `$HOME/.pyenv`.\n",
"\n",
"`echo 'export PATH=\"$PYENV_ROOT/bin:$PATH\"' >> ~/.bash_profile`"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "consecutive-republican",
"metadata": {},
"outputs": [],
"source": [
"\n"
]
},
{
"cell_type": "markdown",
"id": "opening-sound",
"metadata": {},
"source": [
"```bash\n",
"git clone https://github.com/pyenv/pyenv.git ~/.pyenv\n",
"```\n",
"\n",
"Define la variable de entorno `PYENV_ROOT` para tener disponible el path donde\n",
"fue clonado el repositorio y agrega `$PYENV_ROOT/bin` a la variable `$PATH` para\n",
"tener acceso al comando `pyenv` en la terminal.\n",
"\n",
"Warning\n",
"```bash\n",
"echo 'export PYENV_ROOT=\"$HOME/.pyenv\"' >> ~/.bash_profile\n",
"echo 'export PATH=\"$PYENV_ROOT/bin:$PATH\"' >> ~/.bash_profile\n",
"```\n",
"\n",
" Si usas ZSH modifica el comando con ~/.zshrc en lugar de ~/.bash_profile.\n",
" Para Ubuntu y Fedora usa ~/.bashrc en en lugar de ~/.bash_profile.\n",
"> - Si usas **ZSH** modifica el comando con `~/.zshrc` en lugar de\n",
"> `~/.bash_profile`.\n",
"> - Para **Ubuntu** y **Fedora** usa `~/.bashrc` en en lugar de\n",
"> `~/.bash_profile`.\n",
"\n",
"Finalmente para terminar de configurarlo y tener el autocompletado en la consola ejecuta el siguiente comando:\n",
"Finalmente para terminar de configurarlo y tener el autocompletado en la consola\n",
"ejecuta el siguiente comando:\n",
"\n",
"```bash\n",
"echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\\n eval \"$(pyenv init -)\"\\nfi' >> ~/.bash_profile\n",
"```\n",
"\n",
"Warning\n",
"\n",
"Al igual que en el paso anterior reemplaza con ~/.zshrc o ~/.bashrc en el comando según corresponda.\n",
"> Al igual que en el paso anterior reemplaza con `~/.zshrc` o `~/.bashrc` en\n",
"> el comando según corresponda.\n",
"\n",
"Luego restartea la terminal para que tome los cambios.\n",
"\n",
"Info\n",
"> Guía completa en el [README de pyenv](https://github.com/pyenv/pyenv).\n",
"\n",
"Guía completa en el README de pyenv.\n",
"Uso de pyenv¶\n",
"### Uso de `pyenv`\n",
"\n",
"Para buscar que version de Python queremos instalar podemos usar:\n",
"\n",
"pyenv install 3.6.8\n",
"```bash\n",
"pyenv install 3.8.5\n",
"```\n",
"\n",
"Ahora podemos seleccionar esta versión como global\n",
"\n",