Compatibilidad con Python 3.9 y aprendiendo a utilizar múltiples versiones

5/24

Lectura

Compatibilidad de Selenium con Python 3.9

¡Es aquí cuando das un gran paso en tu camino para convertirte en una developer profesional! Al crear un ambiente virtual estás aislando tu proyecto del resto de tu computadora y haciendo que funcione con módulos independientes. Es decir, para llevar este curso puedes tener una versión de Python y Selenium y para hacer otro proyecto puedes tener versiones distintas. Esto hace que los proyectos no se rompan.

Usualmente, sin hacer uso de ambientes virtuales, los proyectos en tu computadora se verían así:
Untitled.png
Pero, al organizarlo profesionalmente, tus proyectos aislados en ambientes virtuales se verían de esta forma:
Untitled (1).png

¿Cómo crear y activar un ambiente virtual?

Primero veamos cómo hacerlo en sistemas basados en Unix como Linux y MacOS.
Te ubicas en la carpeta root del proyecto y corres los siguientes comandos:

#Para crear el ambiente virtual
python3 -m venv nameOfVirtualEnv

#Luego lo tienes que activar
source nameOfVirtualEnv/bin/activate

#Lo puedes desactivar así
deactivate

Si trabajas en Windows puedes poner lo siguiente:

#Crear
py -m venv nameOfVirtualEnv

#Activar
.\nameOfVirtualEnv\Scripts\activate

#Desactivar 
deactivate

Te sugiero que, si trabajas en Windows, uses una terminal basada en Unix como Cmder o un WSL. Además, el Curso de Introducción a la Terminal y Línea de Comandos te viene perfecto para dominar la terminal.

Se muestran errores en la terminal, ¿qué hago?

Tranquila, tranquilo. Los errores son tus amigos. Si te sale un error, lee, interpreta o googlea. Al final actúa racionalmente. Pero lo más probable es que haya errores por no tener paquetes descargados o no tener Python actualizado. Soluciónalo así:

sudo apt update
sudo apt -y upgrade

#Instalando el módulo para ambientes virtuales

sudo apt-get install python3.8-venv #o python3.9-venv según la versión

Instalando dependencias

Ahora que ya sabes qué es un ambiente virtual, cómo crearlo y cómo activarlo, llegó la hora de instalar dependencias usando pip. En el caso particular del curso, instalaremos Selenium en su versión más actualizada que es 4.1.1 y Python 3.9. Puedes ver el historial de versiones de Selenium y su compatibilidad con las versiones de Python dando click aquí.

Recuerda tener activado el ambiente virtual. Luego pones esto en la terminal.

pip install selenium==4.1.3
sudo apt-get install python3.9-venv

¡Listo, ya puedes seguir con el curso! Existen otros instaladores como pyenv. Pero con pip puedes hacer cosas muy avanzadas.

Te animo a revisar el Curso de Python Intermedio: Comprehensions, Lambdas y Manejo de Errores en donde se explican los ambientes virtuales y más cosas interesantes sobre Python.

Aportes 57

Preguntas 20

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Hubiese sido mejor hacer una clase con un video que con este tipo articulos aveces suelen ser demasiado pesados, largos y no muy bien entendidos

Yo hice lo siguiente para Windows:

Desde la consola instalé virtualenv:

py -m pip install --user virtualenv

Luego creo el entorno virtual con la versión de Python que quiera:

virtualenv env -p python3.8

para activar el entorno es:

source env\Scripts\activate

Y por último se verifica la versión de Python instalada:

python --version

a mi esta explicacion me parecio muy confusa y no me sirvio. si alguien tiene el mismo problema y usa MacOS < Mojave. les recomiendo ver le video del profe David.

llevo ya 3 dias en estooo no me funciona nada 😦

Si quieren hacerlo para WINDOWS:

  1. Abran el CMD y ubíquense en la carpeta en donde quieran crear el entorno virtual
  2. Ejecuten python -m venv mi_entorno
  3. Ejecuten mi_entorno\Scripts\activate
  4. LISTO. Ya tienen su entorno virtual activado y funcional.

Python tiene su propio módulo estándar para crear entornos virtuales y eso fue exactamente lo que usamos al ejecutar python -m venv mi_entorno para crear el entorno virtual. Pueden ver más en la documentación haciendo click aquí. En windows ese módulo viene instalado por defecto al instalar python, pero en linux hay que instalar python3-venv en caso de tener instalado el paquete python3. En caso de tener un paquete de una versión de python específica como por ejemplo python3.9, tendrían que instalar python3.9-venv y usarían python3.9 -m venv mi_entorno por ejemplo… y si el comando que usan para python es python3, lo mismo, python3 -m venv mi_entorno.
PD:

  • Por cierto, es una buena práctica usar venv o env como los nombres del entorno virtual.
  • Pueden activar el entorno virtual también haciendo mi_entorno\Scripts\activate.bat, es exactamente lo mismo.

Otra forma de crear nuestro entorno virtual es la siguiente:

<h4>Linux</h4>

Primeramente antes de descargar e instalar un paquete, es recomendable actualizar :

sudo apt-get update
sudo apt-get upgrade

Luego, se procede a instalar el paquete de venv, el cual nos ayudará a crear un entorno virtual:

sudo apt install python3-venv

Lo siguiente será crear nuestro entorno virtual

python -m venv env  #env es el nombre de nuestro entorno virtual ó carpeta donde estará esta mismo

Se procede a activar el ambiente virtual con el siguiente comando. Es importante saber en que carpeta se encuetra:

# en mi caso se encuentra en la siguiente direccion:
[email protected]:~/personalProyect/selenium-python$ source /env/bin/activate
source /env/bin/activate # Este es el comando que nos ayudará a activar nuestro entorno

Luego nos aparecerá de esta forma:

(env) [email protected]:~/personalProyect/selenium-python$
#Se puede apreciar que el entorno esta activado ya que tenemos (env) al principio.

Y listo, ya puedes empezar a instalar las diferentes librerías a tu entorno virtual con pip, el cual es un sistema de gestión de paquetes utilizado para instalar y administrar paquetes de software

(env) [email protected]:~/personalProyect/selenium-python$ pip install selenium

VENV con Python 3.7.9 en Windows

  1. Instale Python 3.7.9
  2. Reinicie el PC
  3. copie la ruta de python 3.7.9 (C:\Users\user\AppData\Local\Programs\Python\Python37\python.exe)
  4. Abra la terminal
  5. con ayuda del comando cd navegue hasta la carpeta de su proyecto
  6. pegue la ruta de python 3.7.9 y le adiciona el comando para crear un entorno virtual, ejemplo:

C:\Users\user\AppData\Local\Programs\Python\Python37\python.exe -m venv venv

LISTO!
solo debes verificar la versión del python cuando actives el entorno virtual

Sugiero que el comentario de "todo lo que instales a través de pip debe ser en un entorno virtual"
deben de ponerlo en la clase anterior.
Ni siquiera el profesor lo instala en un ambiente virtual.

Me costó más trabajo del que pensaba, según yo ya tenía instalado Homebrew pero resultó que no (alguna actualización de iTerm quizá lo desinstaló). Debido a esto los comandos no corrían.

  • Tuve que instalar Homebrew de nuevo, reiniciar terminal.
  • Desinstalar pyenv y después volver a instalarlo.

Hay algun problema si uso el “pyhton3 -m venv venv” en lugar de pyenv como entorno virtual?

Para quienes tienen MacOS…

Puede que tengan el siguiente error al intentar instalar una versión diferente:

ModuleNotFoundError: No module named 'pyexpat'

Esto se debe a que no tenemos Xcode instalado, sin embargo, no quieres instalar un paquete que no usarás y que pesa más de 7 GB dependiendo la versión.

Importante: Entre cada paso asegúrate de reiniciar la terminal.

Así que puedes hacer lo siguiente:

  • Instala XZ con el siguiente comando:
brew install xz


Después corre el siguiente comando:

echo -e 'export SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk MACOSX_DEPLOYMENT_TARGET=10.14' >> ~/.bash_profile

Este comando está para MacOS 10.14 Mojave, pero puedes modificarlo.

Por último instala la versión de python que quieras:

pyenv install 3.8.6


Una vez que logramos instalar la versión de Python correctamente podemos continuar con la creación de un ambiente local con las instrucciones de esta clase.

pyenv local 3.8.6

python --version
# (Python 3.8.6)


P.D. Si te sale otro tipo de error mencionando los Command line tools corre el siguiente código:

xcode-select --install   

Se abrirá una ventada que te pedirá instalar los comandos, solo dale a instalar. No instales Xcode.

P.D. 2: Esta solución la encontré en el siguiente artículo de Medium

Les recomiendo fuertemente miniconda. Al igual que pyenv, maneja gestión de paquetes y entornos virtuales. la ventaja es que facilita mucho el proceso visto acá arriba y esta disponible para windows, linux y mac.

miniconda: https://docs.conda.io/projects/conda/en/latest/user-guide/install/windows.html
Como usarlo: https://www.youtube.com/watch?v=aE7qxfgubS8&t=145s

Consejo: si te estas volviendo loco hay una aplicación de escritorio que se encarga de gestionar entornos virtuales de Python que se llama anaconda, con eso lo resolves en dos segundos

Para los que descargaron CONDA en cursos anteriores aquí va mi aporte para el entorno virtual; si también aprendieron mamba en el curso de Jupyter Notebooks se reemplaza el primer comando por mamba en vez de conda y listo

>
conda create -n seleniumEnv python=3.8 selenium
conda activate seleniumEnv
pip3 install pyunitreport

#Luego para verificar que tienes los 3 instalados y python en la versión correcta utilizas
>
conda list pyunitreport
conda list selenium
conda list python

Te saldrá la versión de cada paquete instalado

packages in environment at /home/hugo/anaconda3/envs/selenp:

Name Version Build Channel

selenium 3.141.0 py38h27cfd23_1000

Y listo, puedes sequir con el curso

Hey! Luego de instalar pyenv y reiniciar mi terminal aún mi terminal no encontraba como ejecutar pyenv.
Estoy en Ubuntu 20.04 y tengo una termina zsh. Lo que hice fue utilizar los siguientes tres comandos:

echo 'export PATH=~/.pyenv/bin:$PATH' >> ~/.zshrc
echo 'export PYENV_ROOT=~/.pyenv' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc 

Si utilizan la terminal bash que viene por defecto en ubuntu deben cambiar el archivo .zshrc por .bashrc. También podrían editar el archivo .zshrc o .bashrhc con VScode o Vim y añadir al final estas líneas:

export PATH=~/.pyenv/bin:$PATH
export PYENV_ROOT=~/.pyenv
eval "$(pyenv init -)"

No se olviden guardar el archivo luego de editarlo. Luego deben reiniciar de nuevo su terminal para que al iniciarse esta ejecute estas líneas que añadieron. Estas le permite a su terminal saber donde se encuentra pyenv y ejecutarlo.
Luego deberían poder usar pyenv sin problemas.

Esta muy bueno esta forma de trabajar con entornos virtuales
solo tuve problemas con el comando pyenv por que no me lo reconocía

Saludos profesor, le comparto como yo he estado haciendo y quisiera saber si mi procedimiento para el uso de ambientes virtuales es correcto:
.
.
Yo he instalado varias versiones de python en mi sistema (linux) descargando la version deseada directo de la pagina de python, en un directorio especifico:

$ mkdir ~/python-versions
$ cd ~/python-versions
$ sudo wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
$ sudo tar xzf Python-3.7.9.tgz

Entonces en ese directorio, hago un altinstall de esa version

$ cd Python-3.7.9
$ sudo ./configure --enable-optimizations
$ sudo make altinstall

Con esto ya puedo crear los environments con la version deseada:
Por ejemplo, para instalar con la version que viene por default en mi sistema:

python3 -m venv new-environment
  • O una version especifica que haya descargado e instalado yo manualmente, por ejemplo, la 3.7
python3.7 -m venv new-environment

por alguna razon no me quiere descargar las versiones y ya coloque los comandos
export PATH="$HOME/.pyenv/bin:$PATH"

eval"$(pyenv init -)"

eval"$(pyenv virtualenv-init -)"

en el archivo que se me indico con vim y a parte da reinicie la terminal tambien

Fue genial esto!!! A mi me lo tuvo que corregir el profe en Twitter pero por suerte, y así espero que sea, yo soy el último alumno que va a preguntar eso vía RRSS. Gracias por mantener actualizado el curso.

Para nombrar el entorno virtual por convención se usa venv que significa virtual enviroment

Hola gente! Si están usando Ubuntu y Python3:

Instalar el env de Python3

sudo apt-get update && sudo apt-get upgrade
python3 -m venv env
source env/bin/activate

Instalar Selenium

sudo apt-get install python3-pip
pip3 --version
pip3 install selenium
pip3 install pyunitreport

Para windows, la terminal se debe abrir como administrador👍

Para W10 me funcionó:
#Crear
py -m venv nameOfVirtualEnv

#Activar
.\nameOfVirtualEnv\Scripts\activate

#Desactivar
deactivate

TEngo windows 10. primero desinstale selenium y pyunitreport del ambien global con:

pip3 uninstall pyunitreport
pip3 uninstall selenium

Luego, cree mi ambiente virtual con py -m venv “ruta de la carpeta”

Una vez alli, coloque:

py -m pip install Selenium
py -m pip install pyunitreport

Y listo, para salir del ambiente simplemente:
deactivate

En mi caso tengo windows y me funcionaron los siguientes comandos:
py -m pip install virtualenv
py -m pip freeze
py -m virtualenv env39 -p python3.9
.\env39\Scripts\activate
py -m pip install selenium
py -m pip install pyunitreport
.\env39\Scripts\deactivate

Con py -m pip freeze se pueden ver los modulos instalados via pip

¡Hola, con todos y todas! 😄

Les cuento que el contenido de esta clase ya fue actualizado. Muchas gracias por su feedback. 💚

Si aún creen que hay cosas por mejorar, pueden dejarlo en los replies de este comentario. Estaré pendiente.

Para los usuarios de Arch Linux y sus derivados: Manjaro…
Se puede instalar Pyenv directamente usando pacman

sudo pacman -S pyenv

Hola a todos les comento que yo tuve que agregar el pyenv a las variables de entorno para que funcionara pyenv en el archivo .zshrc en tu caso podrías ser él archivo .bashrc

Puedes hacerlo agregando esto:


export PATH="/home/(tu_nombre_de_usuario)/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval “$(pyenv virtualenv-init -)”

Tuve otro problema al seguir la instalación de selenium. Intenté usar pip y en la terminal no encontraba el comando. Me fije que antes de instalar es importante activar el entorno virtual como esta al final del texto con pyenv activate....
Sin embargo, tampoco lo encontraba. Ya estaba en mi entorno virtual en el directorio con la versión local de python. Busque por internet y resulta que para utilizar pip y python del entorno virtual yo necesitaba usar el comando pyenv exec .... Por ejemplo para instalar selenium use:

pyenv exec pip install selenium

Luego para verificar si por consola podía ver la versión de python use:

pyenv exec python --version

Por lo visto para usar la version de python que tenemos en el entorno virtual es importante usar siempre pyenv exec .... Sino se ejecuta la versión de python global o directamente la terminal no encuentra los ejecutables de python y pip.
No se olviden verificar bien su entorno virtual para instalar las librerias.

El archivo .python_version, no sale solo con el comando ls, se puede ver con el comando ls -al

al instalar en mi sistema WLS esto: https://github.com/pyenv/pyenv/wiki#suggested-build-environment
pude seguir con los demás pasos de el literal 2

pip3 install selenium

Python 3.8.8

En mi caso con mi mac m1, me sirvio con conda

conda create -n curso-selenium-platzi python=3.8.6
conda activate curso-selenium-platzi

para los que sale un error en mac probar con:
sudo pip install --default-timeout=100 selenium

para los que usan windows deben primero tener wsl. Si no lo tienen instalado pueden ir al curso de prework de js que explican como installarlo. https://platzi.com/clases/2042-prework-windows/32489-instalacion-de-windows-subsystem-for-linux/
una vez con wsl van a la terminal de linux y usan comando.
curl https://pyenv.run | bash

lo que hace es una peticion al servidor donde esta pyenv para descargarlo en su maquina.

una vez hecho eso deben ir a su .bashrc que es archivo que lee su bash para ejecutar los comandos y los alias y pegar esto:

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval “$(pyenv virtualenv-init -)”

lo que hacen esas lineas es decirle a la bash donde se encuentra pyenv para que lo pueda ejecutar

una vez hecho todo eso cierrar la terminal la vuelven abrir y tienen pyenv instalado

Si ninguno de los aportes de la comunidad te ha funcionado (como a mí), te comparto este enlace en el cual te muestra como mantener dos versiones de python en una misma máquina. Pero cuidado, tendrás que hacer el mismo procedimiento para crear un entorno virtual con la versión que tenías antes. No es la mejor solución pero es la que me ha servido, espero a ti también

Comparto el link de la clase de Python intermedio donde se explica a detalle:
https://platzi.com/clases/2255-python-intermedio/36459-el-primer-paso-profesional-creacion-de-un-entorno-/?time=352
saludos Cracks!

virtualenv env -p python3.8 
source env/bin/activate 
python -m pip install --upgrade pip
pip install selenium

pip install pyunitreport

pip freeze

Cree un notion para poder guiarme y me apoye con un video de youtube, espero le entienden 😄 dale amor.

Como instalar pyenv en Ubuntu

Se me esta haciendo muy dificil instalar otra version de python en mi ubuntu para que funcione el Selenium

Se está haciendo imposible continuar con este curso, hace falta más guía por parte del instructor.

Dejo la documentación de pyenv aquí para que la tengan de referencia
https://github.com/pyenv/pyenv

Además, ahora se puede usar un pyenv para Windows, les dejo el link de referencia
https://github.com/pyenv-win/pyenv-win

Para quienes estén en Windows:
Nota: Los paréntesis se omiten.

OBSERVACION: En el siguiente video tendremos problemas al importar selenium y pyunitreport pero dejare un aporte de como solucionar esto. Para el momento en el que publico esto tengo la version de python 3.9.4, selenium 3.141.0 y pyunitreport 0.1.4 y utilizo por consola CMDER y VSC como IDE, versiones actuales a fecha de 2/6/21. Lo mas probable que aunque estas cambien, con los pasos del siguiente post puedan solucionarse los errores al importar estas librerías.

Para crear el entorno virtual pueden utilizar: py -m venv (nombre del entorno, usualmente venv)
Para activarlo: .(nombre)\Scripts\activate
Para desactivarlo: deactivate
Pueden darle un alias a el comando de la siguiente manera:
alias (alias)=.(nombre)\Scripts\activate

Si ya instalaron pyunitreport y selenium fuera del entorno virtual como en mi caso 😦 pueden desinstalarlos con el comando:
pip uninstall (Nombre del paquete)

Una vez dentro del entorno instalan nuevamente selenium y pyunitreport y ya esta listo para usarse.

Recomiendo mucho las clases de entornos virtuales del curso de python intermedio, Facundo (Que es un crack) explica muy bien el tema y se facilita mucho el manejo de entornos, para estos casos por ejemplo.

https://platzi.com/clases/2255-python-intermedio/36458-que-es-un-entorno-virtual/

Saludos comunidad, tengo WSL con Ubuntu 20.04. Y no me servían los comandos de pyenv , recurrí al README en la carpeta de instalación /.pyenv/ y sale lo mismo que en esta guía que os dejaré https://medium.com/puntotech/cómo-gestionar-tus-proyectos-python-con-pyenv-y-poetry-de66e2433a6b

Genial, clara explicación, en mi caso (Ubuntu) tuve que actualizar el bashrc file con las líneas que me indicada al final de correr curl https://pyenv.run | bash

Lo actualicé en la terminal con el comando

nano ~/.bashrc

para los que no les reconoce el comando pyenv
traten coocando uno por uno estos comandos

export PATH="$HOME/.pyenv/bin:$PATH"

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

no puedee, hice todo, lo de mis compañeros y todo ayudaaaaaaaaaaaaaaaaaaaaaaaaa

Si están en Windows les recomiendo mucho trabajar con WSL
¡En el Curso de Prework: Configuración de Entorno de Desarrollo en Windows les enseñan a hacer esto!
Y es obligatorio ya haber tomado el curso intermedio de Python, específicamente la clase de entornos virtuales los va a preparar para todos estos detalles. Ánimo y éxito 😃

No puedo instalar una versión de python con pyenv en Mac Big Sur…

configure: error: Unexpected output of 'arch' on OSX
make: *** No targets specified and no makefile found.  Stop.

BUILD FAILED (OS X 11.0.1 using python-build 1.2.24.1)

Hola.! 😃
para los que utilizan wsl y encontraron errores la solución el el siguiente
link

Tuve algunos problemas con la instalación de pyenv, pero al final todo salió bien.
Sólo hay que ejecutar 3 líneas de código y queda hecho.
Esperemos que todo siga así