entornos python

De Wikicima
Saltar a: navegación, buscar

Contenido

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

  1. Creation of the place where the environment will reside
$ mkdir -p ${HOME}/bin/py27env
$ cd ${HOME}/bin/py27env
  1. Install virtualenv
$ pip install virtualenv
  1. Test installation
$ virtualenv --version
  1. Create a virtual environment (e.g `py27env' to be used with python 2.7):
$ virtualenv -p /usr/bin/python2.7 ./
  1. Activate the environment
$ source ${HOME}/bin/py27env/bin/activate
(py27env) $
  1. 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
  1. To know which packages are installed
(py27env) $ pip freeze
numpy==1.13.3
  1. With the activation of the environment, one directly uses the python from it
(py27env) $ which python
/home/lluis.fita/bin/py27env/bin/python
  1. Deactivating environment
(py27env) $ deactivate
$ 

Matplotlib

There are certain installation problems referred to the `mpl_toolkit'

  1. 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/
Herramientas personales