programar plataforma para mejor como python macos numpy homebrew anaconda

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 o direnv 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