1. Instalação de pacotes
Para adicionar bibliotecas ao ambiente Python, utilize o gerenciador de pacotes pip. A versão do comando depende da instalação do interpretador:
pip install pygame # Python 2
pip3 install pygame # Python 3
2. Criação de módulos personalizados
Quando um arquivo .py é importado, o interpretador gera um arquivo sendmsg.cpython-36.pyc, que contém o bytecode. Esse arquivo intermediário acelera execuções futuras, pois evita a recompilação do código-fonte.
3. Formas de importar
Existem várias maneiras de trazer funcionalidades de um módulo para o escopo atual:
import utilidades
from utilidades import carregar, salvar
from utilidades import *
Importações com * podem causar colisões de nomes; em caso de repeticao, a última definição sobrescreve as anteriores. Para simplificar nomes longos, use um apelido:
import datetime as dt
A ordem de busca do interpretador é:
- Diretório atual
- Caminhos configurados no sistema
Ao importar um módulo, seu corpo é executado automaticamente. Por isso, costuma-se declarar apenas funções e classes. O atributo especial __name__ permite diferenciar execução direta de importação: quando o arquivo é executado, vale '__main__'; quando importado, vale o nome do próprio módulo.
class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
def __str__(self):
return f"[nome={self.nome}, idade={self.idade}]"
def principal():
print("Iniciando teste...")
individuo = Pessoa("Ana", 25)
print(individuo)
if __name__ == '__main__':
principal()
Controle de exportação com __all__
A lista __all__ define quais elementos serão disponibilizados quando se usa from modulo import *. Apenas os nomes listados ficam visíveis; funções, classes e variáveis fora dela permaencem inacessíveis por esse tipo de importação.
__all__ = ["calcular", "validar"]
4. Pacotes e __init__.py
Um pacote é representado por uma pasta que contém um arquivo chamado __init__.py. A importação do pacote como um todo dispara a execução desse arquivo.
Dentro de __init__.py, é comum importar os submódulos desejados. A forma mais segura e compatível entre Python 2 e Python 3 é:
from . import pessoa
Recomenda-se, portanto, usar sempre a sintaxe from pacote import modulo, tanto externamente quanto dentro do próprio __init__.py.
5. Empacotamento e publicação
Para distribuir um projeto, crie um arquivo setup.py usando distutils:
from distutils.core import setup
setup(
name='meu_projeto',
version='1.0',
description='Conjunto de módulos utilitários',
author='Autor Exemplo',
py_modules=['mod_a.funcoes', 'mod_b.classes']
)
Em seguida, execute os comandos no terminal:
python3 setup.py build
python3 setup.py sdist
O segundo comando gera um pacote de distribuição, que inclui um arquivo PKG-INFO com os metadados do projeto. Para instalar localemnte:
python setup.py install
6. Recebendo argumentos da linha de comando
O módulo sys oferece acesso aos parâmetros passados ao iniciar o programa:
import sys
print(sys.argv)
O valor sys.argv[0] é o nome do script, enquanto os demais itens são os argumentos fornecidos pelo usuário.