Cómo configurar virtualenvwrapper con python3 en OSX Mojave
Si es un desarrollador que trabaja con python, debería usar VirtualEnv para administrar los requisitos de sus proyectos y Virtualenwrapper para facilitarle la vida con atajos útiles.
Virtualenvwrapper tiene una muy buena documentación y la instalación de python con Homebrew es sencilla, pero es increíble ver que en la computadora de cada desarrollador que ayudo, encuentro varios problemas con su instalación. Por lo tanto, la motivación de este artículo es proporcionar una guía definitiva para configurar su instalación de Python de una manera que evite problemas futuros en OSX.
Dado que estamos en 2018 (o después), también supongo que todos sus proyectos actuales funcionan con python3, ¿verdad? Por lo tanto, esta guía será completamente diferente a todo lo que lea en todas partes. Si la mayoría de sus proyectos son python2 y tiene algunos en python3, vaya a otro lugar.
Lo sé, no es su culpa, OSX Mojave todavía viene con python 2 por defecto 🙁 pero no debería tener nada que ver con su configuración de desarrollo, porque no debería usar las bibliotecas del sistema para el desarrollo … Deja el sistema solo.
¡Ni siquiera intente eliminar o actualizar el python2 predeterminado que viene con el sistema operativo! Cosas como sudo algo están prohibidas si no quiere romper cosas. No está en Windows, por lo que no debería necesitar modificar su sistema para configurar su entorno de desarrollo.
Instalación de Python3
Asumiré que solo tiene una copia nueva de su sistema operativo (¡no lo ha estropeado!), Ya ha instalado Homebrew para administrar sus dependencias del sistema y usted usa zsh como su shell.
Tengamos todo actualizado y verifiquemos que el sistema esté bien antes de comenzar:
brew update && brew upgrade brew doctor
Usted debe leer algo como esto:
brew doctor Your system is ready to brew.
Si recibe advertencias, le recomiendo que las repare antes de continuar con cualquier otra cosa. Si no tiene Homebrew configurado de la manera correcta, su vida podría ser complicada en los próximos pasos.
Como todo está bien, es hora de instalar python3:
brew install python
Instalará python3 de forma predeterminada, y obtendrá una confirmación como esta:
Python has been installed as /usr/local/bin/python3 Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to `python3`, `python3-config`, `pip3` etc., respectively, have been installed into /usr/local/opt/python/libexec/bin If you need Homebrew's Python 2.7 run brew install python@2 You can install Python packages with pip3 install <package> They will install into the site-package directory /usr/local/lib/python3.7/site-packages See: https://docs.brew.sh/Homebrew-and-Python ==> Summary /usr/local/Cellar/python/3.7.1: 3,824 files, 59.2MB
En este momento, ha instalado python3, pero aún no es la python predeterminada en su entorno, si escribe python -V, seguirá obteniendo python 2.7, y solo obtendrá python3 si ejecuta explícitamente python3.
python -V Python 2.7.10 python3 -V Python 3.7.1
Puede seguir ejecutando python3 para todo cuando sea necesario, pero hace las cosas más complicadas en la futura configuración de virtualenvwrapper, por lo que vamos a configurar python3 como la versión predeterminada de python para usar en mi usuario. Para hacerlo, vamos a modificar la RUTA con las siguientes instrucciones:
export PATH="/usr/local/opt/python/libexec/bin:/usr/local/sbin:$PATH"
Con esta instrucción, ha establecido la precedencia a su instalación de python3 sobre la instalación predeterminada de python, y puede verificarlo ejecutando:
python -V Python 3.7.1 pip -V pip 18.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
Para hacerlo permanente, edite el archivo .zshrc:
echo 'export PATH="/usr/local/opt/python/libexec/bin:/usr/local/sbin:$PATH"' >> ~/.zshrc
Instalación y configuración de Virtualenvwrapper
Una vez configurado esto, la instalación de virtualenvwrapper será mucho más fácil, y tal como se explica en la guía de instalación.
pip install virtualenv pip install virtualenvwrapper
Ahora agréguelo al archivo de inicio de shell (.zshrc):
export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/Devel source /usr/local/bin/virtualenvwrapper.sh
Ahora tendrá virtualenvwrapper listo, para que pueda crear entornos virtuales para sus proyectos de Python simplemente ejecutando mkvirtualenv ENVIRONMENT y cambiar a un entorno virtual específico utilizando workon ENVIRONMENT. Puede leer más sobre cómo usar virtualenvwrapper en la documentación oficial.
Bonus track: Python2
¿Necesita trabajar en un proyecto con python2? … OK, no es el fin del mundo. Guido van Rossum lo puede perdonar.
Las siguientes líneas se explican por sí mismas. Instale python2 y cuando necesite usar python2, configúrelo explícitamente:
brew install python2 mkvirtualenv py2 -p python2
¡Feliz codificación!