******************** Empezando con python ******************** Para trabajar con python es recomendable usar entornos virtuales. Las instalaciones de Anaconda tienen también asociados entornos virtuales, aunque la sintaxis es algo diferente. Instalación de python ====================== Hay numerosos tutoriales que explican como instalar python. Entre las opciones disponibles, las más populares son instalar python desde el `repositorio oficial `_ o instalar una distribución de `Anaconda `_. Python es un lenguaje de alto nivel y de propósito general. Anaconda es una distribución de python y de R que incluye muchas herramientas para trabajar en ciencias de datos y en aprendizaje automático. Las distribuciones de Anaconda incluyen muchos paquetes que posiblemente no necesitamos. Todas las herramientas de Anaconda se pueden instalar desde python. Manejadores de paquetes ========================== El manejador de paquetes de Anaconda se llama `conda`, mientras que el de python se llama `pip`. Para instalar un paquete, por ejemplo `numpy `_:: pip install numpy Los paquetes de python forman parte de un repositorio de paquetes llamado `pypi (Python Package Index)`_. Allí se pueden encontrar cientos de miles de paquetes par diferentes propósitos. Cómo preparar un entorno virtual ================================ Los entornos virtuales permiten experimentar con paquetes de python sin riesgo de afectar al sistema en el que se está trabajando. También permite tener diferentes entornos para trabajar con diferentes versiones de python o de los paquetes. Pare crear un entorno virtual, llamado "MyVE": ``virtualenv MyVE`` o bien, con las versiones más nuevas de python: ``python -m venv MyVE`` Una vez que está creado, se puede acceder al mismo ejecutando el script "activate", que está ubicado en la carpeta creada: ``source MyVE/bin/activate`` Muchos proyectos tienen asociado un archivo que indica los paquetes requeridos, usualmente se llama "requirements.txt": ``pip install -r requirements.txt`` Entornos virtuales con Anaconda =============================== ``conda create --name MyVE`` y para activarlo: ``conda activate MyVE`` Usando Anaconda se puede trabajar con una colección de entornos virtuales, sin tener que acceder a las carpetas creadas para cada entorno. Por ejemplo, si tenemos dos entornos virtuales, podemos pasar de uno a otro desde cualquier lugar: ``conda activate MyVE_1`` ``conda activate MyVE_2`` `Más información sobre los entornos virtuales de anaconda `_ Esto también es posible con las instalaciones de python en el sistema (sin anaconda) usando la herramienta virtualenvwrapper. Virtualenvwrapper ================= `virtualenvwrapper `_ es un conjunto de extensiones de `virtualenv `_ que permiten administrar entornos virtuales y mejorar el flujo de trabajo. Los pasos a seguir son: 1. Crear una carpeta (oculta) donde se almacenarán las configuraciones de los EV:: mkdir ~/.virtualenvs 2. Instalar los paquetes necesarios. Por ejemplo en sistemas basados en Debian:: apt install virtualenvwrapper pip install virtualenvswrapper si no está el pip, instalar: (virtualenv y python-setuptools):: sudo apt install python3-pip 3. Editar el archivo del shell bash:: export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' export VIRTUALENVWRAPPER_PYTHON=$(which python3) Hay varias cosas que pueden fallar. Aquí una breve lista de resolución de problemas:: Que puede fallar: 1) virtualenvwrapper La ubicacion del script virtualenvwrapper.sh depende de la distribucion de linux: Mint: source /usr/local/bin/virtualenvwrapper.sh CBPP: source $HOME/.local/bin/virtualenvwrapper.sh 2) virtualenv en la variable VIRTUALENVWRAPPER_VIRTUALENV poner la ubicación de virtualenv: $ which virtualenv 3) python Si da este error: source $HOME/.local/bin/virtualenvwrapper.sh /usr/local/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper') virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenvwrapper has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 and that PATH is set properly. probar hacer esto: reemplazar: export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 por: export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python Más info: - `Si da errores `_. - `Command reference for wirtualenvwrapper `_ - `Virtualenvwrapper readthedocs (Documentación) `_ Cómo se usa: * mkvirtualenv --python=$(which python3) MyVE * lsvirtualenv * workon MyVE * rmvirtualenv MyVE Repositorios y control de versión ================================= Dos de las acciones más útiles a la hora de desarrollar códigos son las de compartir y llevar un registro de versiones. Para ello existen los llamados repositorios, que además de brindar una ubicación en la nuba donde compartir códigos brindan distintas herramientas. Algunos de los repositorios más usados en la actualidad son: - `GitHub `_ - `GitLab `_ - `Assembla `_ - `Anaconda Cloud `_ Estos repositorios trabajan con `sistemas de control de versión `_, por ejemplo: - `GIT `_ - `SVN `_ En esta materia usaremos la combinación GitHub, que trabaja con GIT. Usando git con GitHub ===================== Un buen tutorial sobre `GitHub `_. En la version simple, cuando solo un usuario edita: 1. git clone (one time only) 2. git pull 3. edit files 4. add files to the version control stack 5. commit changes 6. push changes 7. go to 2. Varios usuarios: 1. git clone (one time only) 2. git pull 3. edit files 4. add files to the version control stack 5. before commit, git pull and resolve conflicts (if any) 5. commit changes 6. push changes 7. go to 2.