Como Importar Módulos em Python 3

Introdução

A linguagem de programação Python vem com uma variedade de funções integradas. Entre estas 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 dados para um inteiro
  • len() que retorna o comprimento de uma sequência ou coleção

No entanto, essas funções integradas são limitadas, e podemos utilizar 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 hello que pode ser importado para outros arquivos Python ou usado no interpretador de linha de comando Python. Você pode aprender sobre como criar seus próprios módulos lendo Como Escrever Módulos em Python 3.

Módulos podem definir funções, classes e variáveis que você pode referenciar em outros arquivos Python .py ou através do interpretador de linha de comando do Python.

No Python, os módulos são acessados usando a instrução import. Quando você faz isso, você executa o código do módulo, mantendo os escopos das definições para que seus arquivos atuais possam fazer uso destes.

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 alias 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, 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.)

Verificação e Instalação de Módulos

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

Informação: Para acompanhar o código de exemplo neste tutorial, abra um shell interativo do Python no seu sistema local executando o comando python3. Em seguida, 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 ambiente de programação baseado em servidor e inicie o interpretador Python na linha de comando da seguinte maneira:

  1. python

Do interior do interpretador, você pode executar a declaração import para garantir que o módulo fornecido esteja pronto para ser chamado, como em:

  1. import math

Como math é um módulo integrado, seu interpretador deve concluir a tarefa sem 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 declaraçã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 então instalar o matplotlib com pip.

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

  1. pip install matplotlib

Assim que estiver instalado, você pode importar o matplotlib no interpretador Python usando import matplotlib, e ele será concluído sem erros.

Importando Módulos

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

Uma declaração de importação é composta pela palavra-chave importar 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.

Portanto, no arquivo de programa Python meu_rand_int.py, importaremos o módulo aleatório 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 usando notação de ponto, como em [módulo].[função].

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

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

Vamos criar um loop for para mostrar como chamaremos uma função do módulo aleatório dentro do nosso programa meu_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 aleatório na primeira linha, e depois entra em um loop for que 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 números inteiros 1 e 25 são passados para aleatório.randint() como seus parâmetros.

Quando executamos o programa com python my_rand_int.py, receberemos 10 inteiros aleatórios como saída. Como estes são aleatórios, é provável que você obtenha diferentes inteiros cada vez que executar o programa, mas eles gerarão 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 fazê-lo 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 separando-os — 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 em 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. Quando você importa módulos desta maneira, pode se referir às funções pelo nome em vez de através da notação de ponto

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

Em outros programas, você pode ver a instrução import aceitar referências a tudo definido dentro do módulo usando um asterisco (*) como um caractere 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 chamamos 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 esta função dentro do nosso programa, não escreveremos mais a função na notação de ponto como random.randint() mas sim 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 referenciar os elementos definidos de um módulo dentro do namespace do nosso programa, permitindo-nos 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 pode querer abreviar um nome mais longo que está usando frequentemente.

A construção desta declaração se parece com 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)

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

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

import matplotlib.pyplot as plt

Isso permite que os programadores acrescentem 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 sendo usada 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 incorporadas ao Python. Alguns módulos são instalados como parte do Python, e alguns vamos instalar através do pip.

O 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