Como Importar Módulos no Python 3

Introdução

A linguagem de programação Python vem com uma variedade de funções integradas. Entre essas estão várias funções comuns, incluindo:

  • print() que imprime expressões
  • abs() que retorna o valor absoluto de um número
  • int() que converte outro tipo de dado para um inteiro
  • len() que retorna o comprimento de uma sequência ou coleção

Essas funções integradas, no entanto, são limitadas, e podemos fazer uso de módulos para criar programas mais sofisticados.

Módulos são arquivos Python .py que consistem em código Python. Qualquer arquivo Python pode ser referenciado como um módulo. Um arquivo Python chamado hello.py tem o nome do módulo de hello que pode ser importado para outros arquivos Python ou usado no interpretador de linha de comando Python. Você pode aprender a criar seus próprios módulos lendo Como Escrever Módulos em Python 3.

Os módulos podem definir funções, classes, e variáveis que você pode referenciar em outros arquivos Python .py ou via interpretador de linha de comando Python.

No Python, os módulos são acessados usando o comando import. Ao fazer isso, você executa o código do módulo, mantendo os escopos das definições para que seu(s) arquivo(s) atual(is) possam fazer uso delas.

Ao importar um módulo chamado hello, por exemplo, o interpretador primeiro procurará por um módulo integrado chamado hello. Se um módulo integrado não for encontrado, o interpretador Python então procurará por um arquivo chamado hello.py em uma lista de diretórios que ele recebe da variável sys.path.

Este tutorial irá guiá-lo através da verificação e instalação de módulos, importação de módulos e criação de apelidos para módulos.

Pré-requisitos

Você deve ter o Python 3 instalado e um ambiente de programação configurado no seu computador ou servidor. Se você não tiver um ambiente de programação configurado, você pode consultar os guias de instalação e configuração para um ambiente de programação local ou para um ambiente de programação no seu servidor apropriado para o seu sistema operacional (Ubuntu, CentOS, Debian, etc.)

Verificando e Instalando Módulos

Há vários módulos que estão incorporados na Biblioteca Padrão do Python, que contém muitos módulos que fornecem acesso à funcionalidade do sistema ou fornecem soluções padronizadas. A Biblioteca Padrão do Python faz parte de toda instalação do Python.

Informação: Para acompanhar os exemplos de código neste tutorial, abra um shell interativo do Python no seu sistema local executando o comando python3. Então você pode copiar, colar ou editar os exemplos adicionando-os após o prompt >>>.

Para verificar se esses módulos Python estão prontos para uso, entre no seu ambiente de programação Python 3 local ou em um ambiente de programação baseado em servidor e inicie o interpretador Python na linha de comando da seguinte maneira:

  1. python

De dentro do interpretador, você pode executar a instrução import para garantir que o módulo dado esteja pronto para ser chamado, como neste exemplo:

  1. import math

Dado que math é um módulo integrado, seu interpretador deve completar a tarefa sem nenhum feedback, retornando ao prompt. Isso significa que você não precisa fazer nada para começar a usar o módulo math.

Vamos executar a instrução import com um módulo que você pode não ter instalado, como a biblioteca de plotagem 2D matplotlib:

  1. import matplotlib

Se o matplotlib não estiver instalado, você receberá um erro como este:

Output
ImportError: No module named 'matplotlib'

Você pode desativar o interpretador Python com CTRL + D e depois instalar o matplotlib com pip.

Em seguida, podemos usar o pip para instalar o módulo matplotlib:

  1. pip install matplotlib

Depois de instalado, você pode importar o matplotlib no interpretador Python usando import matplotlib, e ele será concluído sem erro.

Importando Módulos

Para usar as funções de um módulo, você precisará importar o módulo com uma instrução import.

Um import é composto pela palavra-chave import juntamente com o nome do módulo.

Em um arquivo Python, isso será declarado no topo do código, abaixo de quaisquer linhas de shebang ou comentários gerais.

Assim, no arquivo de programa Python my_rand_int.py, importaríamos o módulo random para gerar números aleatórios desta maneira:

my_rand_int.py
import random

Ao importarmos um módulo, estamos tornando-o disponível para nós em nosso programa atual como um namespace separado. Isso significa que teremos que nos referir à função em notação de ponto, como em [módulo].[função].

Na prática, com o exemplo do módulo random, isso pode se parecer com uma função como:

  • random.randint() que chama a função para retornar um número inteiro aleatório, ou
  • random.randrange() que chama a função para retornar um elemento aleatório de um intervalo especificado.

Vamos criar um for loop para mostrar como vamos chamar uma função do módulo random dentro do nosso programa my_rand_int.py:

my_rand_int.py
import random


for i in range(10):
    print(random.randint(1, 25))

Este pequeno programa primeiro importa o módulo random na primeira linha, depois entra em um for loop que irá trabalhar com 10 elementos. Dentro do loop, o programa imprimirá um número inteiro aleatório dentro do intervalo de 1 a 25 (inclusive). Os inteiros 1 e 25 são passados para random.randint() como seus parâmetros.

Quando executamos o programa com python my_rand_int.py, receberemos 10 inteiros aleatórios como saída. Como esses são aleatórios, é provável que você obtenha diferentes inteiros cada vez que executar o programa, mas eles irão gerar algo assim:

Output
6 9 1 14 3 22 10 1 15 9

Os inteiros nunca devem ser inferiores a 1 ou superiores a 25.

Se você deseja usar funções de mais de um módulo, pode fazer isso adicionando múltiplas instruções import:

my_rand_int.py
import random
import math

Você pode ver programas que importam vários módulos com vírgulas os separando — como em import random, math — mas isso não é consistente com o Guia de Estilo PEP 8.

Para fazer uso de nosso módulo adicional, podemos adicionar a constante pi de math ao nosso programa e diminuir o número de inteiros aleatórios impressos:

my_rand_int.py
import random
import math


for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

Agora, quando executamos nosso programa, receberemos uma saída que se parece com isso, com uma aproximação de pi como nossa última linha de saída:

Output
18 10 7 13 10 3.141592653589793

A instrução import permite que você importe um ou mais módulos para o seu programa Python, permitindo que você faça uso das definições construídas nesses módulos.

Usando fromimport

Para se referir a itens de um módulo dentro do namespace do seu programa, você pode usar a instrução fromimport. Ao importar módulos dessa forma, você pode se referir às funções pelo nome em vez de usar a notação de ponto

Nessa construção, você pode especificar quais definições referenciar diretamente.

Em outros programas, você pode ver a instrução import recebendo referências a tudo definido dentro do módulo usando um asterisco (*) como um curinga, mas isso é desencorajado pelo PEP 8.

Vamos primeiro revisar a importação de uma função específica, randint(), do módulo random:

my_rand_int.py
from random import randint

Aqui, primeiro usamos a palavra-chave from, depois random para o módulo. Em seguida, usamos a palavra-chave import e chamamos a função específica que gostaríamos de usar.

Agora, quando implementamos essa função em nosso programa, não escreveremos mais a função na notação de ponto como random.randint(), mas apenas randint():

my_rand_int.py
from random import randint


for i in range(10):
    print(randint(1, 25))

Ao executar o programa, você receberá uma saída semelhante ao que recebemos anteriormente.

O uso da construção fromimport nos permite fazer referência aos elementos definidos de um módulo dentro do namespace do nosso programa, permitindo evitar a notação de ponto.

Apelidando Módulos

É possível modificar os nomes dos módulos e suas funções dentro do Python usando a palavra-chave as.

Você pode querer mudar um nome porque já usou o mesmo nome para outra coisa em seu programa, outro módulo que você importou também usa esse nome, ou você pode querer abreviar um nome mais longo que está usando muito.

A construção desta declaração parece o seguinte:

import [module] as [another_name]

Vamos modificar o nome do módulo math em nosso arquivo de programa my_math.py. Vamos mudar o nome do módulo de math para m para abreviá-lo. Nosso programa modificado ficará assim:

my_math.py
import math as m


print(m.pi)
print(m.e)

No programa, agora nos referimos à constante pi como m.pi em vez de math.pi.

Para alguns módulos, é comum usar aliases. A documentação oficial do matplotlib.pyplot chama para o uso de plt como um alias:

import matplotlib.pyplot as plt

Isso permite aos programadores anexar a palavra mais curta plt a qualquer uma das funções disponíveis dentro do módulo, como em plt.show(). Você pode ver esta declaração de importação de alias em uso dentro do nosso tutorial “Como Plotar Dados em Python 3 Usando matplotlib“.

Conclusão

Quando importamos módulos, somos capazes de chamar funções que não estão integradas ao Python. Alguns módulos são instalados como parte do Python, e alguns nós instalaremos através do pip.

Fazer uso de módulos nos permite tornar nossos programas mais robustos e poderosos, pois estamos aproveitando o código existente. Também podemos criar nossos próprios módulos para nós mesmos e para outros programadores usarem em programas futuros.

Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3