python - para - plataforma anaconda
OS X-Decidir entre anaconda y entornos de Python caseros (2)
Uso Python ampliamente en mi Mac OS X, tanto para aplicaciones numéricas como para desarrollo web (aproximadamente igual). Revisé la cantidad de instalaciones de Python que tenía en mi computadora portátil recientemente, y me sorprendió encontrar cuatro :
Came with Mac OS X:
/usr/bin/python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Installed via Homebrew
/usr/local/bin/python
Python 2.7.10 (default, Jul 13 2015, 12:05:58)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Installed via Anaconda/Miniconda
~/anaconda/bin/python
Python 2.7.10 |Anaconda 2.3.0 (x86_64)| (default, Oct 19 2015, 18:31:17)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
Came with the downloaded .pkg from python.org
/System/Library/Frameworks/Python.framework/Versions/Current/bin/python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Decidí unificar todo esto y usar conda
. Quité la versión Homebrew y la descarga de Python.org (mantuve la principal del sistema). Conda es excelente para la computación numérica, porque puedo instalar Jupyter / Numpy / Pandas en el entorno raíz, y no tengo que molestar en instalar virtualenvs para cada proyecto.
Pero ahora todo mi flujo de trabajo de desarrollo web está en mal estado. Ninguno de mis virtualesenvs funciona, ya que aparentemente uno no debe usar conda y virtualenv juntos. Intenté crear entornos conda desde el archivo Requirements.txt. Un paquete que estaba usando con django era "markdown_deux", que no está disponible en el repositorio de Conda. Busqué maneras de construirlo, pero crear una receta requiere mucho esfuerzo (crear un archivo YAML, etc.)
¿Alguien ha encontrado un buen compromiso para esto? Estoy pensando en volver a la versión Homebrew para uso general, y escribir un alias para cambiar el camino de regreso a la versión conda según sea necesario. Aunque esto también requerirá un seguimiento de cuál estoy usando ahora ...
Flujo de trabajo que he encontrado el mejor:
Utilice
conda
para la gestión de entornos virtuales. Nunca use / instale en el sistema python.Use
pip
para instalar en el entorno virtual activo, como de costumbre.Use los paquetes de
conda
solo para software difícil de instalar, como Qt.
Automatización / extras
- Use
autoenv
odirenv
y active automáticamente los entornos virtuales cuando ingrese a un directorio colocando el comando conda dentro del archivo.env
o.envsrc
.
Utilizo Homebrew Python para todos mis proyectos (ciencia de datos, algo de desarrollo web).
Conda no es nada lujoso, puedes tener los mismos paquetes a mano con una combinación de pip
y Homebrew science . En realidad, es aún mejor porque tiene más control sobre lo que instala.
Puedes usar tus virtualenvs solo cuando hagas desarrollo web. Para las aplicaciones numéricas, probablemente querrá tener las últimas versiones de sus paquetes en todo momento.
Si desea actualizar todos sus paquetes a la vez con pip, puede usar este comando:
sudo -H pip freeze --local | grep -v ''^/-e'' | cut -d = -f 1 | xargs -n1 sudo -H pip install -U