= Python: Entornos virtuales
* [[development:python:entornos-virtuales#venv|venv]]
* [[development:python:entornos-virtuales#virtualenv|virtualenv]]
* [[development:python:entornos-virtuales#pyenv|pyenv]]
Una combinación de **pyenv** (para gestión de versiones de python) y **virtualenv** (para encapsular librerias por proyecto) parace una buena solución
== virtualenv
python3 -m pip install --upgrade pip
pip3 install virtualenv
which virtualenv
virtualenv -p /home/username/opt/python-3.10.1/bin/python3 venv # crea venv
pip3 install --upgrade setuptools # si error setuptools pip failed with error code 1` error
source venv/bin/activate # activar
pip3 install # instalación de módulos
deactivate # desactivar
rm -rf venv # eliminar
/via: [[https://help.dreamhost.com/hc/es/articles/115000695551-Instalar-y-usar-virtualenv-con-Python-3]]
pip install virtualenv
# navegar a directorio y crear con:
python -m venv
# alternativamente
virtualenv -p /home/username/opt/python-3.10.1/bin/python3
# activar
source /bin/activate
# desactivar
deactivate
== venv
* [[https://docs.python.org/es/3/tutorial/venv.html]]
=== creación
python -m venv tutorial-env
* crea una carpeta con la versión de python disponible
=== activación
* windows: tutorial-env\Scripts\activate
* gestión versiones en windows con comando ''py'' ?
* linux: source tutorial-env/bin/activate
=== desactivación
deactivate
== pyenv
=== instalación
* install: curl https://pyenv.run | bash
* configuración: # pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
* verificar instalación:pyenv --version
=== uso
* listado versiones disponibles: pyenv install --list | grep " 3\.[67]"
* versiones 3.6.* y 3.7.* en este caso
* instalar una versión en concreto: pyenv install -v 3.6.0
* paquetes para asegurarse una instalación y compilación correctas: sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
* versiones instaladas:pyenv versions
* ls ~/.pyenv/versions/
* establecer versión del sistema:pyenv global 3.9.9
* establecer versión en un directorio concreto:pyenv local 3.9.9
* desinstalar: pyenv uninstall 2.7.9
* ejecutar shell de alguna versión instalada:pyenv shell 2.7.9
=== entornos virtuales
* inicializar entorno virtual:pyenv virtualenv 3.9.9 ecomerce
* activar entorno virtual:pyenv activate ecomerce
* listar entornos viruales: pyenv virtualenvs
* desactivar: pyenv deactivate
* borrar: pyenv virtualenv-delete proyecto2
* configurar entorno virtual en directorio concreto: pyenv local ecomerce
/via:
* [[https://roylans.dev/entorno-virtual-en-python-pyenv]]
* [[https://www.slayerx.org/2020/05/27/pyenv-para-tener-distintas-versiones-de-python/]]