entornos python
Instalación de Python con Anaconda (por usuario)
La mejor opción hoy en día es usar "Anaconda", poniendo el script de instalación en el home del user que lo pide y que cada uno se lo instale
Nueva forma
Instalar sólo Anaconda3 e instalar lo que se quiera de Python2 con un nuevo "entorno"
Instalación
Descargar el script de instalación de Anaconda3 (python3)
https://www.continuum.io/downloads
Ejemplo:
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh
Se instala poniendo "bash Anaconda...". Ej:
$ bash Anaconda3-4.3.1-Linux-x86_64.sh
Lo único que pide es "Aceptar los Terminos y Condiciones", indicar el directorio donde instalarlo (dentro de cada $HOME mejor) y, al final de todo, te dice si queres que te agregue una variable de entorno para apuntar el PATH a ese directorio. IMPORTANTE: El default es "no" pero recomiendo que pongas "yes" así se simplifica el uso
Agregar repo canal conda-forge
Como la mayoría de los softs para ciencia necesitan este canal (repo), lo agregamos al entorno "Default"
$ export http_proxy=http://proxy1.cima.fcen.uba.ar:3128 $ conda config --add channels conda-forge
Instalar softs genericos en Anaconda
Todos en el CIMA usan NETCDF, por lo que es importante instalar el paquete "netcdf4". Tambien hace falta instalar "conda-build"
$ conda install netcdf4 $ conda install conda-build
COMANDOS UTILES (opcional)
Crear entorno
En caso que se requiera instalar un soft que use distintas versiones de librerias o usar Python2 se pueden crear entornos
$ conda create -n ferret python=2.7 $ conda create -n py2 python=2.7 $ conda create -n rstudio
Activar el entorno que uno quiera
$ source activate ferret
Verificar que esté correcto
(ferret) soporte@vboxgev2:~$ which python /home/soporte/anaconda3/envs/ferret/bin/python
Instalar lo que uno necesite
Se instalará todo dentro de este entorno
(ferret) soporte@vboxgev2:~$ conda install ferret
Limpiar la instalacion
Una vez finalizado con toda la instalación, hacer limpieza de los paquetes que no se necesitan
$ conda clean -a
Clonar instalación de anaconda con los paquetes y entornos creados
Una vez que finalizamos con ls instalación de todos los paquetes deseados bajo "anaconda" podemos proceder a instalar lo mismo para cada usuario
Listar los "entornos" existentes
$ conda env list
# conda environments: # ferret /home/soporte/anaconda3/envs/ferret rstudio /home/soporte/anaconda3/envs/rstudio cdo /home/soporte/anaconda3/envs/cdo root * /home/soporte/anaconda3
Listar los canales
$ conda config --get channels
--add channels 'defaults' # lowest priority --add channels 'conda-forge' # highest priority
Hacer limpieza
Antes de exportar la lista, verificamos que no haya quedado nada instalado que no se necesite
$ conda clean -a
Guardar la lista de paquetes instalados para cada entorno
$ conda list --export > anaconda3_root_packages.txt $ conda env export -n rstudio > anaconda3_rstudio_packages_env.yml $ conda env export -n ferret > anaconda3_ferret_packages_env.yml $ conda env export -n cdo > anaconda3_cdo_packages_env.yml
Instalar Anaconda en cada usuario
Copiar script de instalación y archivos con la lista de paquetes
Poner el script de instalación de Anaconda y los archivos con la lista de paquetes en un directorio accesible por todos
$ sudo mkdir -p /datos/python/bin $ sudo chmod 777 /datos/python /datos/python/bin $ sudo cp Anaconda3-*-Linux-x86_64.sh anaconda3_*_packages_env.yml anaconda3_root_packages.txt /datos/python $ sudo chmod 777 /datos/python/Anaconda3-*-Linux-x86_64.sh $ sudo chmod 666 /datos/python/anaconda3_*_packages_env.yml /datos/python/anaconda3_root_packages.txt
Copiar scripts personalizados
$ cd ~/anaconda3/bin $ cp R rstudio ferret cdo /datos/python/bin
Tmux
Como la instalación para cada usuario TARDA MUCHO, es recomendable usar "tmux" para evitar problemas en caso que se apague la PC o se corte el enlace. Además, podemos realizar varias instalaciones simultaneas con menos riesgo
$ tmux
NOTA: Se puede poner el nombre del usuario a la sesión para no confundirse al abrir muchos tmux. Una vez dentro de tmux presionar
CTRL+b $
y nos permite editar el nombre de la sesión
Pasarse al usuario e instalar anaconda dentro del directorio "datos"
Para no llenar el home, instalaremos Anaconda eligiendo como PATH el directorio "datos/anaconda3" de cada usuario
$ sudo su - USUARIO $ bash /datos/python/Anaconda3-X.X.X-Linux-x86_64.sh
Ej:
$bash /datos/python/Anaconda3-4.4.0-Linux-x86_64.sh
Como PATH elegimos
/home/USUARIO/datos/anaconda3
O en su defecto según el link simbólico creado
Ej:
/home/usuario/datosskogul/anaconda3
Salir de la sesión del usuario y volver a conectarse
Una vez que termina de instalarse anaconda, salimos de la sesión del usuario (pero NO de tmux) y volvemos a conectarnos para que levante las variables de entorno correctas
$ exit $ sudo su - USUARIO
Instalar los canales
$ conda config --add channels conda-forge
Instalar todos los paquetes desde los archivos de las listas
$ conda install --file /datos/python/anaconda3_root_packages.txt $ conda env create -f=/datos/python/anaconda3_rstudio_packages_env.yml -n rstudio $ conda env create -f=/datos/python/anaconda3_ferret_packages_env.yml -n ferret $ conda env create -f=/datos/python/anaconda3_cdo_packages_env.yml -n cdo
NOTA: TARDA MUUUCHO, ¡PACIENCIA!
Copiar los scripts personalizados en el usuario
$ cd ~/datos/anaconda3/bin $ cp /datos/python/bin/* . $ chmod u+x R rstudio ferret cdo
Probar todo y borrar los scripts y archivos de lista
Una vez que hayamos finalizado de instalar TODO para todos los usuarios, borrar el directorio "/datos/python"
$ cd /datos $ sudo rm -fr python
Forma Vieja
Instalación
Descargar el script de instalación de Anaconda de la versión de Python que se quiera (Python 2 o Python 3)
https://www.continuum.io/downloads
Ejemplo:
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh $ wget https://repo.continuum.io/archive/Anaconda2-4.3.1-Linux-x86_64.sh
Se instalan poniendo "bash Anaconda...". Ej:
$ bash Anaconda2-4.3.1-Linux-x86_64.sh
Lo único que pide es "Aceptar los Terminos y Condiciones", indicar el directorio donde instalarlo (dentro de cada $HOME mejor) y, al final de todo, te dice si queres que te agregue una variable de entorno para apuntar el PATH a ese directorio. IMPORTANTE: El default es "no" pero recomiendo que pongas "yes" así se simplifica el uso
Utilización
Una vez que está instalado, podes manejar los paquetes que necesites con el comando "conda" ("conda search NOMBRE", "conda install NOMBRE-PAQUETE", etc).
En caso que un paquete no lo tengan en "conda", podes buscarlo e instalarlo con "pip". Igualmente siempre conviene primero intentar con "conda"
Overview
INFO: Anaconda es un "manejador de paquetes", pensado para facilitar la instalación y orientado a Data Science. Tiene sus propios paquetes, y no entra en conflicto con el SO ya que instala todo dentro del directorio de Anaconda
Para más información:
https://www.continuum.io/anaconda-overview
Mail de aviso de instalación
OJO: Modificar hosts y versiones en forma acorde
Para que puedas trabajar tranquilo con Python (idea que apoyo totalmente) y puedas instalar todo lo que necesites, te dejé el script de instalación de Anaconda en tu home.
No se si conoces Anaconda pero es un "manejador de paquetes", pensado para facilitar la instalación y orientado a Data Science. Tiene sus propios paquetes, y no entra en conflicto con el SO ya que instala todo dentro del directorio de Anaconda
En tu $HOME/python de pytheas (el cual se monta también en nautilus) dejé 2 scripts de instalación de Anaconda 4.1. Uno para Python 3.5 (Anaconda3-4.1.1-Linux-x86_64.sh) y otro para Python 2.7 (Anaconda2-4.1.1-Linux-x86_64.sh). Se instalan poniendo "bash Anaconda..."
En tu caso sería:
$ bash Anaconda3-4.3.1-Linux-x86_64.sh
Lo único que te pide es aceptar los terminos y condiciones, indicar el directorio donde instalarlo (dentro de tu $HOME mejor) y, al final de todo, te dice si queres que te agregue una variable de entorno para apuntar el PATH a ese directorio. IMPORTANTE: El default es "no" pero recomiendo que pongas "yes" así se simplifica el uso
Una vez que está instalado, podes manejar los paquetes que necesites con el comando "conda" ("conda search NOMBRE", "conda install NOMBRE-PAQUETE", etc).
En caso que un paquete no lo tengan en "conda", podes buscarlo e instalarlo con "pip". Igualmente siempre conviene primero intentar con "conda"
Para más información:
https://www.continuum.io/anaconda-overview
Si tenes alguna duda, avisanos.
Virtual env
The generation of environments facilitate the specific requiremnts of each user for each purpose.
Following instructions from python environments
- Creation of the place where the environment will reside
$ mkdir -p ${HOME}/bin/py27env $ cd ${HOME}/bin/py27env
- Install
virtualenv
$ pip install virtualenv
- Test installation
$ virtualenv --version
- Create a virtual environment (e.g `py27env' to be used with python 2.7):
$ virtualenv -p /usr/bin/python2.7 ./
- Activate the environment
$ source ${HOME}/bin/py27env/bin/activate (py27env) $
- Installing packages
(py27env) $ pip install numpy Collecting numpy Using cached numpy-1.13.3-cp27-cp27mu-manylinux1_x86_64.whl Installing collected packages: numpy Successfully installed numpy-1.13.3
- To know which packages are installed
(py27env) $ pip freeze numpy==1.13.3
- With the activation of the environment, one directly uses the python from it
(py27env) $ which python /home/lluis.fita/bin/py27env/bin/python
- Deactivating environment
(py27env) $ deactivate $
Matplotlib
There are certain installation problems referred to the `mpl_toolkit'
- On a given instaltion:
(py27env) $ pip freeze backports.functools-lru-cache==1.4 cycler==0.10.0 ecmwf-api-client==1.5.0 matplotlib==2.1.0 netCDF4==1.3.1 numpy==1.13.3 pyparsing==2.2.0 python-dateutil==2.6.1 pytz==2017.3 scipy==1.0.0 six==1.11.0 subprocess32==3.2.7
- There is not `basemap'
from mpl_toolkits.basemap import Basemap ImportError: No module named basemap
- but it is not found in the
pip
(py27env) $ pip install basemap Collecting basemap Could not find a version that satisfies the requirement basemap (from versions: ) No matching distribution found for basemap
- Installing directly from matpotlib
(py27env) $ pip install https://github.com/matplotlib/basemap/archive/v1.1.0.tar.gz
- Or we will need to manually install `matplotlib' and `basemap' (following Matplolib installation. Unpacking the different packages...
(py27env) $ mkdir $HOME/Downloads (py27env) $ cd Downloads/