Aprenda a criar, distribuir e usar pacotes em Python com a ajuda deste guia.

Imagine a difícil tarefa de desenvolver um aplicativo abrangente confinado a um único arquivo Python. Embora tecnicamente viável, vai contra os princípios básicos de construção de software eficiente, sustentável e reutilizável. Por tais razões, pacotes e módulos são essenciais para a construção e desenvolvimento de software.

O que é um pacote?

Em Python, um pacote fornece uma maneira de organizar módulos e recursos logicamente relacionados. É um diretório que contém vários módulos Python, subpacotes e outros recursos.

Os pacotes fornecem uma estrutura hierárquica, permitindo que você organize o código do seu projeto em diferentes níveis de abstração.

Diferença entre pacotes e módulos

Embora você possa usar ambos os pacotes e módulos para organizar o código, existem diferenças entre eles:

  • Módulo: Um módulo é um arquivo que contém o código Python. Ele define funções, classes, variáveis ​​e outros objetos que você pode importar e usar em seu código.
  • instagram viewer
  • Pacote: Um pacote é uma coleção de um ou mais módulos e também pode incluir subpacotes.

Como criar um pacote em Python

Para criar um pacote, siga estas etapas definidas.

Etapa 1: criar um diretório de projeto

Comece criando um diretório de projeto.

study_bud/

Etapa 2: criar um diretório de pacotes

Dentro do diretório do seu projeto, crie outro diretório que servirá como diretório do pacote. Dê a ele um nome significativo que represente a finalidade ou a funcionalidade do pacote. O diretório do pacote conterá os módulos e subpacotes relacionados ao seu pacote.

study_bud/
math_tool/

Etapa 3: definir o arquivo __init__.py do pacote

No diretório do pacote, crie um __init__.py arquivo. A presença de __init__.py arquivo é o que torna o diretório um pacote em Python.

Se precisar inicializar um código sempre que usar o pacote, inclua-o no __init__.py arquivo caso contrário, está sempre vazio.

study_bud/
math_tool/
__init__.py

Etapa 4: adicionar módulos ao pacote

Dentro do diretório do pacote, adicione módulos Python (.py) que definem funções, classes ou variáveis.

Esses módulos contêm o código real que fornece a funcionalidade do seu pacote. Você pode criar vários módulos dentro do diretório do pacote.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py

Etapa 5: adicionar subpacotes ao pacote

Se seu pacote precisa ter uma estrutura hierárquica ou contém funcionalidades distintas, você pode criar subpacotes dentro do diretório de pacotes.

Um subpacote é simplesmente outro diretório de pacotes dentro do diretório de pacotes principal. Cada sub-pacote deve ter seu __init__.py arquivo. Os subpacotes permitem maior organização e separação de código.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py

Nestas etapas, você criou um math_tool pacote, adicionou dois módulos (operações.py e estatísticas.py) e dois subpacotes geometria e cálculo cada um com seus módulos.

Seguindo essas etapas, você pode organizar facilmente a funcionalidade relacionada usando um pacote e subpacotes, facilitando o gerenciamento e a reutilização do código.

Como trabalhar com um pacote em Python

Para trabalhar com um pacote, você precisa importá-lo. O importar e de palavras-chave permitem que você importe e use um pacote em seu código.

import math_tool # entire package

Você também pode usar a notação de ponto para importar módulos, subpacotes ou propriedades específicas de um pacote. A notação de ponto permite que você navegue pela estrutura de diretórios do pacote. A notação de ponto torna suas importações mais legíveis e fáceis de manter.

from math_tool.operations import add, multiply # specific functions

No código acima, você navegou a partir do diretório do pacote (math_tool) para o operações módulo usando a notação de ponto e importou duas funções (adicionar e multiplicar).

Importações absolutas vs. Importações Relativas

Com absolutoimporta, especifique o caminho completo do pacote de nível superior (o pacote raiz) para o módulo ou subpacote desejado. Esta é a maneira mais comum e recomendada de importar módulos e pacotes em Python.

from math_tool.geometry.shapes import parallelogram

Começando de math_tool ir para o geometria subpacote, encontre o formas.py módulo e importe o paralelogramo função.

Enquanto relativoimporta permitem que você faça importações relativas à localização do módulo atual usando a notação de ponto para especificar as importações relativas.

Por exemplo, dentro do calculus/integrations.py módulo, você pode usar a importação relativa para importar uma função do formas.py módulo no geometria sub-pacote.

# calculus/integrations.py
from ..geometry.shapes import rhombus

O ponto duplo (""..") diz ao Python para:

  • Comece a partir do diretório do subpacote (cálculo) onde o módulo (integrações.py) existe.
  • Vá para o pacote pai (math_tool) diretório do subpacote.
  • Encontre o geometria subpacote no diretório pai.
  • Vá para o formas.py módulo e importar rombo a partir dele.

Portanto, a notação de ponto representa o número de diretórios para navegar a partir do diretório do módulo atual.

Alias ​​Imports for Convenience

Você pode atribuir um alias a uma importação, facilitando a referência em seu código. Aliases são úteis ao lidar com pacotes longos ou nomes de módulos.

Para atribuir um alias, use o como palavra-chave.

import math_tool.calculus as cal

Como distribuir seu pacote em Python

O Python fornece ferramentas e uma plataforma para construir e distribuir seu pacote. Distribuir seu pacote permite que você compartilhe seu código com outros desenvolvedores, promova a colaboração, simplifique a instalação para os usuários e contribua para a comunidade Python mais ampla.

Passo 1: Crie uma conta no PyPI

Índice de pacotes Python (PyPI) é o repositório padrão para pacotes Python. Você pode publicar seus pacotes no PyPI para que outros desenvolvedores possam encontrá-los e instalá-los facilmente.

Certifique-se de lembrar o seu nome de usuário e senha pois você precisará deles para autenticação ao enviar seu pacote para o PyPI.

Essas ferramentas facilitam a configuração, compilação e envio de um pacote distribuível em um único comando.

pip install build wheel twine

Etapa 3: criar um arquivo setup.py

Para distribuir seu pacote, crie um arquivo setup.py no diretório raiz do seu projeto. O setup.py O arquivo contém metadados sobre seu pacote, como nome, versão, autor, descrição, dependências e muito mais.

As ferramentas de gerenciamento de pacotes usarão o setup.py arquivo para configurar e construir seu pacote.

#setup.py
from setuptools import setup, find_packages

setup(
name='',
version='1.0.0',
author='',
description='A collection of mathematical utility functions',
packages=find_packages(),
install_requires=[
'numpy',
'scipy',
],
)

Etapa 4: criar o pacote

Assim que tiver o setup.py arquivo pronto, você pode usá-lo para construir um pacote distribuível. No seu terminal ou prompt de comando, navegue até o diretório contendo o setup.py arquivo e execute o seguinte comando:

python setup.py sdist bdist_wheel

Este comando gera um dist. diretório contendo um pacote de distribuição fonte (.tar.gz) e um pacote de distribuição wheel (.whl). Você também verá um construir e informação diretório.

Etapa 5: carregar o pacote no PyPI

Com seu pacote pronto, você pode carregá-lo no PyPI.

Execute o seguinte comando:

twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********

Visite o seu PyPI página de gerenciamento de projetos para ver seu pacote.

Agora, outros desenvolvedores que acharem seu pacote útil podem instalá-lo e usá-lo localmente.

Como instalar um pacote Python

Gerenciadores de pacotes como pip facilita a instalação e o gerenciamento de pacotes Python de várias fontes, incluindo o Python Package Index (PyPI). Para instalar um pacote usando pip, abra seu terminal ou prompt de comando e use o seguinte comando:

pip install 

Para ver todos os comandos e opções disponíveis para pip use o --ajuda opção.

Escrevendo Módulos Limpos

Os pacotes contêm módulos e subpacotes que, por sua vez, contêm outros módulos. É uma boa prática modularizar seu código, especialmente ao trabalhar em projetos maiores, pois isso promove uma melhor organização e legibilidade do código. Portanto, é importante escrever módulos com clareza ao desenvolver com Python.