

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Uso de diferentes versões do Python com o EMR Sem Servidor
<a name="using-python"></a>

Além do caso de uso em [Uso de bibliotecas Python com o EMR Sem Servidor](using-python-libraries.md), você também pode usar ambientes virtuais do Python para trabalhar com versões do Python diferentes da versão empacotada na versão do Amazon EMR para a aplicação do Amazon EMR. Para fazer isso, crie um ambiente virtual do Python com a versão do Python que deseja usar.

**Para enviar um trabalho de um ambiente virtual do Python**

1. Crie seu ambiente virtual com os comandos do exemplo a seguir. Este exemplo instala o Python 3.9.9 em um pacote de ambiente virtual e copia o arquivo para um local do Amazon S3.
**Importante**  
Se você usa o Amazon EMR nas versões 7.0.0 e superiores, execute seus comandos em um ambiente do Amazon Linux 2023 semelhante ao que você usa nas aplicações do EMR Sem Servidor.   
 Se você usa a versão 6.15.0 ou inferior, execute os comandos a seguir em um ambiente do Amazon Linux 2 similar.

   ```
   # install Python 3.9.9 and activate the venv
   yum install -y gcc openssl-devel bzip2-devel libffi-devel tar gzip wget make
   wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz && \
   tar xzf Python-3.9.9.tgz && cd Python-3.9.9 && \
   ./configure --enable-optimizations && \
   make altinstall
   
   # create python venv with Python 3.9.9
   python3.9 -m venv pyspark_venv_python_3.9.9 --copies 
   source pyspark_venv_python_3.9.9/bin/activate
   
   # copy system python3 libraries to venv
   cp -r /usr/local/lib/python3.9/* ./pyspark_venv_python_3.9.9/lib/python3.9/
   
   # package venv to archive. 
   # **Note** that you have to supply --python-prefix option 
   # to make sure python starts with the path where your 
   # copied libraries are present.
   # Copying the python binary to the "environment" directory.
   pip3 install venv-pack
   venv-pack -f -o pyspark_venv_python_3.9.9.tar.gz --python-prefix /home/hadoop/environment
   
   # stage the archive in S3 
   aws s3 cp pyspark_venv_python_3.9.9.tar.gz s3://<path>
   
   # optionally, remove the virtual environment directory
   rm -fr pyspark_venv_python_3.9.9
   ```

1. Defina suas propriedades para usar o ambiente virtual do Python e enviar o trabalho do Spark.

   ```
   # note that the archive suffix "environment" is the same as the directory where you copied the Python binary.
   --conf spark.archives=s3://amzn-s3-demo-bucket/EXAMPLE-PREFIX/pyspark_venv_python_3.9.9.tar.gz#environment 
   --conf spark.emr-serverless.driverEnv.PYSPARK_DRIVER_PYTHON=./environment/bin/python
   --conf spark.emr-serverless.driverEnv.PYSPARK_PYTHON=./environment/bin/python 
   --conf spark.executorEnv.PYSPARK_PYTHON=./environment/bin/python
   ```

Para saber mais sobre como usar ambientes virtuais Python para PySpark trabalhos, consulte [Usando](https://spark.apache.org/docs/latest/api/python/tutorial/python_packaging.html#using-virtualenv) o Virtualenv. Para obter mais exemplos de como enviar trabalhos do Spark, consulte [Uso das configurações do Spark ao executar trabalhos do EMR Sem Servidor](jobs-spark.md).