Módulos de Terceiros

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Python possui uma vasta biblioteca de módulos embutidos (baterias incluídas).

Existem ainda mais módulos de terceiros. Verifique-os no Índice de Pacotes Python ou PyPi. Ou simplesmente faça uma pesquisa no Google sobre um tópico específico.

Como lidar com dependências de terceiros é um tópico em constante evolução no Python. Esta seção cobre apenas o básico para ajudá-lo a entender como funciona.

O Caminho de Busca do Módulo

sys.path é um diretório que contém a lista de todos os diretórios verificados pela instrução import. Veja:

>>> import sys
>>> sys.path
... veja o resultado ...
>>>

Se você importar algo e ele não estiver localizado em um desses diretórios, você receberá uma exceção ImportError.

Módulos da Biblioteca Padrão

Módulos da biblioteca padrão do Python geralmente vêm de um local como `/usr/local/lib/python3.6'. Você pode descobrir com certeza tentando um pequeno teste:

>>> import re
>>> re
<module 're' from '/usr/local/lib/python3.6/re.py'>
>>>

Simplesmente olhar para um módulo no REPL é uma boa dica de depuração para se saber. Ele mostrará a localização do arquivo.

Módulos de Terceiros

Módulos de terceiros geralmente estão localizados em um diretório site-packages dedicado. Você o verá se executar as mesmas etapas acima:

>>> import numpy
>>> numpy
<module 'numpy' from '/usr/local/lib/python3.6/site-packages/numpy/__init__.py'>
>>>

Novamente, olhar para um módulo é uma boa dica de depuração se você estiver tentando descobrir por que algo relacionado a import não está funcionando como esperado.

Instalando Módulos

A técnica mais comum para instalar um módulo de terceiros é usar o pip. Por exemplo:

$ python3 -m pip install packagename

Este comando fará o download do pacote e o instalará no diretório site-packages.

Problemas

  • Você pode estar usando uma instalação do Python que você não controla diretamente.
    • Uma instalação aprovada pela empresa
    • Você está usando a versão do Python que vem com o sistema operacional.
  • Você pode não ter permissão para instalar pacotes globais no computador.
  • Pode haver outras dependências.

Ambientes Virtuais

Uma solução comum para problemas de instalação de pacotes é criar o que se chama de "ambiente virtual" para você. Naturalmente, não existe uma "única maneira" de fazer isso - na verdade, existem várias ferramentas e técnicas concorrentes. No entanto, se você estiver usando uma instalação padrão do Python, pode tentar digitar o seguinte:

$ sudo apt install python3-venv
$ python -m venv mypython
bash %

Após alguns momentos de espera, você terá um novo diretório mypython que é sua própria pequena instalação do Python. Dentro desse diretório, você encontrará um diretório bin/ (Unix) ou um diretório Scripts/ (Windows). Se você executar o script activate encontrado lá, ele "ativará" esta versão do Python, tornando-a o comando python padrão para o shell. Por exemplo:

$ source mypython/bin/activate
(mypython) bash %

A partir daqui, você pode começar a instalar pacotes Python para você mesmo. Por exemplo:

(mypython) $ python -m pip install pandas
...

Para fins de experimentação e teste de diferentes pacotes, um ambiente virtual geralmente funcionará bem. Se, por outro lado, você estiver criando um aplicativo e ele tiver dependências específicas de pacotes, esse é um problema um pouco diferente.

Lidando com Dependências de Terceiros em Seu Aplicativo

Se você escreveu um aplicativo e ele tem dependências específicas de terceiros, um desafio diz respeito à criação e preservação do ambiente que inclui seu código e as dependências. Infelizmente, esta tem sido uma área de grande confusão e mudança frequente ao longo da vida do Python. Continua a evoluir mesmo agora.

Em vez de fornecer informações que certamente estarão desatualizadas em breve, refiro você ao Guia do Usuário de Empacotamento Python.

Exercício 9.4: Criando um Ambiente Virtual

Tente recriar as etapas de criação de um ambiente virtual e instalação do pandas nele, conforme mostrado acima.

Resumo

Parabéns! Você concluiu o laboratório de Módulos de Terceiros. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.