Advertisement
  1. Code
  2. Python

Revisitando o Empacotamento em Python com Pipenv

by
Read Time:9 minsLanguages:

Portuguese (Português) translation by André (you can also view the original English article)

Visão Geral

Python é uma das linguagens de programação mais amigáveis e potentes que existem por aí. É fácil para iniciantes e, ao mesmo tempo, é amplamente utilizada em diversos domínios - como na programação científica, programação de aplicações web e DevOps. Mas um dos pontos mais fracos do Python tem sido seu suporte para empacotamento de aplicações complexas e suas dependências.

Ao longo dos anos, tem havido muitos esforços para melhorar essa situação. Em agosto de 2017, eu escrevi um tutorial sobre o estado da arte em empacotamento Python: Como Escrever, Empacotar e Distribuir uma Biblioteca em Python.

Faz apenas quatro meses, e já existe um jogador novo na cidade. Pipenv agora é a ferramenta oficialmente recomendada para empacotamento por PyPA (Python Packaging Authority). Neste tutorial você vai aprender como o Pipenv melhora significativamente o fluxo de trabalho de desenvolvimento para Python e como usá-lo efetivamente.

Fluxo de Desenvolvimento Python para Humanos

O objetivo do Pipenv é melhorar o fluxo de trabalho de desenvolvedores Python quando se trata de gerir as dependências e ambientes virtuais. É outra biblioteca do Kenneth Reitz, que é conhecido principalmente pelo pacote request (HTTP para humanos), mas que escreveu, também, alguns outros pacotes excelentes.

Precisamos de Mais uma Ferramenta de Empacotamento?

Sim, nós precisamos! Pipenv leva em consideração práticas modernas de gerenciamento de pacotes e as leva para dentro do mundo Python.

Instalando Pipenv

Você pode instalar o Pipenv com pip install pipenv. Você terá uma saída com emojis:

$curl https://github.com/pypa/pipenv/blob/master/get-pipenv.py | python>

request = "*". Ele usa o TOML como seu formato, que é uma escolha atualmente popular para arquivos de configuração (Rust's Cargo, Python's PEP-518). .

pipenv graphe>

run e shell. .

pipenv run python <your program>.py para executar o seu programa, e você usa o pipenv shell para iniciar um novo shell com seu interpretador Python do ambiente virtual. A seguir, a forma de se utilizar o comando shell para iniciar uma sessão interativa de Python que utiliza os pacotes instalados para recuperar uma citação do dia a partir de uma REST API. O ambiente virtual é ativado, e o Python utiliza o interpretador correto onde a biblioteca requests está disponível.e.

pipenv install -r <path/to/requirements.txt> .>.

pipenv install. Depois de ter verificado que tudo está funcionando como o esperado, você pode excluir o arquivo requirements.txt.e.

Você pode dizer ao Pipenv para instalar um caminho como editável. Isso é útil quando você depende de pacotes que você está desenvolvendo e quer utilizar o seu código sem precisar instalá-los toda vez que você fizer uma alteração. Em particular, isso é útil para o diretório atual onde você está trabalhando ativamente. Para fazer isso, use os sinalizadores -e e --dev:gs:

Você precisa ter um arquivo setup.py.le.

Você já viu um monte de coisas que o Pipenv pode fazer por você. Vamos nos aprofundar agora em alguns comandos adicionais e opções.ns.

O comando pipenv install suporta várias opções:ns:

    < --dev: instala ambos os pacotes (desenvolvedor e padrão) a partir do Pipfile.lock.ck. < --system: usa o comando pip do sistema ao invés do que vem do seu virtualenv.nv. < --ignore-pipfile: ignora o Pipfile e instala a partir do Pipfile.lock.ck. < --skip-lock: ignora o Pipfile.lock e instala a partir do Pipfile. Além disso, não escreve um Pipfile.lock que refletem mudanças sobre o Pipfile. e.
Dependendo do seu fluxo de trabalho e preferências, você pode querer usar uma ou mais dessas opções em diferentes momentos.es.

Para desinstalar uma dependência, digite: pipenv uninstall <package_name>. Por exemplo:le:

Note que não precisei especificar "requests==2.8.14" ao desinstalar, mesmo que ele estivesse fixado no Pipfile.le.

Se você deseja gerar uma snapshot das suas dependências atuais (por exemplo, antes de um lançamento), use o comando de bloqueio. Esta é a chave para compilações deterministas e repetíveis: pipenv lock --pre.e>.

Pipenv é incrível, mas você pode querer limpar alguns dos ambientes virtuais de vez em quando. É tão simples quanto digitar pipenv --rm.e>.

Pipfile.Lock aproveita-se de algumas das grandes melhorias de segurança do pip. Por padrão, o Pipfile.lock será gerado com uma função hash sha256 de cada pacote baixado. Isso permitirá que o pip garanta que você está instalando o que você pretende realmente quer enquanto estiver em uma rede não-confiável - ou baixar as dependências a partir de um um PyPI não confiável.nt.

Além disso, o Pipenv fornece o comando check, que verifica a conformidade com a PEP 508 -- Dependency specification for Python Software Packages, bem como a segurança do pacote:ty:

Pipenv finalmente traz o empacotamento em Python para o que há de moderno em desenvolvimento de software. Ele recebe inspiração de outros sistemas de gerenciamento de dependências já estabelecidos como o Rust's Cargo e o JavaScript's Yarn. n.

Ele casa ambientes virtuais com gerenciamento de pacotes e fornece uma experiência superior com belas e coloridas mensagens informativas - além de seguir, de forma implícita, práticas já estabelecidas! Eu recomendo altamente que você comece a usar o Pipenv para gerenciar seus projetos de Python.ts.

Além disso, não hesite em ver o que temos disponível para venda e para estudo no Envato Market, e não deixe de fazer perguntas e dar seu feedback através da seção abaixo.ow.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.