Skip to content

Como Criar uma Biblioteca em Python

    biblioteca

    Quer criar uma biblioteca Python? Este guia mostra como.

    As ferramentas que vamos usar neste tutorial são:

    • Prompt de comando Linux
    • Visual Studio Code

    Passo 1: Criando um Diretório para Sua Biblioteca Python

    1. Abra o prompt de comando e crie uma nova pasta para a sua biblioteca Python.
    2. Lembre-se de que:
      • ‘pwd’ mostra o diretório atual.
      • ‘ls’ lista pastas e arquivos.
      • ‘cd <caminho>’ muda o diretório.
      • ‘mkdir <pasta>’ cria uma nova pasta no diretório de trabalho.
    3. Por exemplo, minha pasta é ‘mypythonlibrary’. Altere o diretório atual para sua pasta desejada.”

    Passo 2: Criar um Ambiente Virtual para Sua Pasta

    Ao iniciar seu projeto, crie um ambiente virtual para evitar problemas de compatibilidade com bibliotecas e colaboração com outros. Para isso, após mudar para a pasta desejada, use o comando a seguir

    python3 -m venv venv

    Depois de criado, ative o ambiente:

    source venv/bin/activate

    Ativar um ambiente virtual ajusta as configurações do Python e mostra o ambiente atual no prompt. Certifique-se de ter os pacotes wheel, setuptools e twine instalados, pois serão necessários para criar sua biblioteca Python.

    pip install wheel
    pip install setuptools
    pip install twine

    Passo 3: Criar uma Estrutura de Pastas

    No Visual Studio Code, abra a pasta “mypythonlibrary” que você criou. Agora, adicione pastas e arquivos ao projeto usando o prompt de comando ou o Visual Studio Code. Comece criando os seguintes itens:

    1. Um arquivo vazio chamado “setup.py”.
    2. Um arquivo vazio chamado “README.md” para informações sobre a biblioteca.
    3. Uma pasta chamada “mypythonlib” (ou outro nome exclusivo para sua biblioteca Python).
    4. Dentro de “mypythonlib”, crie um arquivo vazio chamado “init.py”.
    5. Também em “mypythonlib”, crie um arquivo chamado “myfunctions.py”.

    Finalmente, na pasta raiz, crie uma pasta “tests” e dentro dela, um arquivo “init.py” vazio e um arquivo vazio chamado “test_myfunctions.py”. Sua estrutura deve se parecer com isso:

    Passo 4: Criar Conteúdo para Sua Biblioteca

    Para adicionar funções à sua biblioteca, você pode colocá-las no arquivo myfunctions.py. Por exemplo, copie a função haversine para o arquivo:

    from math import radians, cos, sin, asin, sqrt
    
    def haversine(lon1: float, lat1: float, lon2: float, lat2: float) -> float:
        """
        Calculate the great circle distance between two points on the 
        earth (specified in decimal degrees), returns the distance in
        meters.
        All arguments must be of equal length.
        :param lon1: longitude of first place
        :param lat1: latitude of first place
        :param lon2: longitude of second place
        :param lat2: latitude of second place
        :return: distance in meters between the two sets of coordinates
        """
        # Convert decimal degrees to radians
        lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
    
        # Haversine formula
        dlon = lon2 - lon1
        dlat = lat2 - lat1
        a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
        c = 2 * asin(sqrt(a))
        r = 6371  # Raio da Terra em quilômetros
        return c * r

    Quando você escreve código, é importante criar testes. No Python, use as bibliotecas pytest e pytest-runner, instalando-as no seu ambiente virtual.

    pip install pytest==4.4.1
    pip install pytest-runner==4.4

    Vamos criar um pequeno teste para a função haversine. Copie o seguinte e coloque-o no arquivo test_myfunctions.py:

    from mypythonlib import myfunctions
    
    def test_haversine():
        assert myfunctions.haversine(52.370216, 4.895168, 52.520
    
    008, 13.404954) == 945793.4375088713

    Finalmente, faça um arquivo setup.py para construir a biblioteca. Um exemplo simples se parece com isto:

    from setuptools import find_packages, setup
    
    setup(
        name='mypythonlib',
        packages=find_packages(),
        version='0.1.0',
        description='Minha primeira biblioteca Python',
        author='Eu',
        license='MIT',
    )

    A variável ‘name’ no ‘setup’ define o nome do pacote da biblioteca, que usaremos igual ao nome da pasta.

    Escolha os pacotes a criar; evitar pacotes indesejados é importante.

    Use ‘find_packages()’ com cuidado, considerando a exclusão dos testes ou use ‘include’ para um controle mais preciso.

    from setuptools import find_packages, setup
    
    setup(
        name='mypythonlib',
        packages=find_packages(include=['mypythonlib']),
        version='0.1.0',
        description='Minha primeira biblioteca Python',
        author='Eu',
        license='MIT',
    )

    Defina as necessidades da sua biblioteca. Use ‘install_requires’ no ‘setup.py’ apenas para pacotes essenciais.

    Não liste pacotes da biblioteca padrão do Python. Se você só usou a biblioteca ‘math’ até agora, pode deixar ‘install_requires’ vazio. Lembre-se de que o pytest foi instalado para testes, ele não é necessário em ‘install_requires’

    from setuptools import find_packages, setup
    
    setup(
        name='mypythonlib',
        packages=find_packages(include=['mypythonlib']),
        version='0.1.0',
        description='Minha primeira biblioteca Python',
        author='Eu',
        license='MIT',
        install_requires=[],
        setup_requires=['pytest-runner'],
        tests_require=['pytest==4.4.1'],
        test_suite='tests',
    )

    Executar:

    python setup.py pytest

    executará todos os testes armazenados na pasta ‘tests’.

    Passo 5: Construir Sua Biblioteca

    Agora que tudo está pronto, construa sua biblioteca. No prompt de comando, vá para a pasta principal do projeto (/caminho/para/mypythonlibrary) e execute:

    python setup.py bdist_wheel

    Você encontrará o arquivo “wheel” na nova pasta “dist”. Para instalar sua biblioteca, use:

    pip install /caminho/para/seuarquivo.wheel

    Você pode publicar sua biblioteca na intranet do trabalho ou no PyPI e, depois de instalá-la, importá-la com:

    import mypythonlib
    from mypythonlib import myfunctions

    Agora você pode criar e compartilhar sua própria biblioteca Python, abrindo oportunidades como desenvolvedor e contribuindo para a comunidade de código aberto.

    Referências Adicionais

    Introdução ao Pip: Instalando Bibliotecas Python de Terceiros

    Link para a biblioteca setuptools: https://pypi.org/project/setuptools/

    Tags:

    Leave a Reply

    Your email address will not be published. Required fields are marked *