Pipenv: construindo rodas com pipenv?

Criado em 7 mar. 2018  ·  3Comentários  ·  Fonte: pypa/pipenv

Eu gostaria de poder gerar rodas para todas as dependências em um Pipfile.lock enquanto aproveitava a verificação de hash. Antes de 11.1.2, você poderia fazer isso com:

pipenv lock -r > reqs.txt
pip wheel -r reqs.txt

_(#1417 foi problemático para este fluxo de trabalho, mas por outro lado funcionou)_

Na versão 11.1.2, os hashes foram removidos da saída de estilo de requisitos, o que (afaik) significa que não há como construir/baixar rodas verificadas por hash de um arquivo de bloqueio.

O caso de uso é empacotar módulos Python para instalações offline ou instalações sem ferramentas de compilação/desenvolvimento no servidor. As rodas podem ser construídas, distribuídas e instaladas em um ambiente Python mínimo.


É esta funcionalidade que você consideraria incluir no projeto? Se não, existe alguma maneira de oferecer suporte a esse fluxo de trabalho novamente?

Comentários muito úteis

Caso alguém procure aqui uma solução, é bem fácil (assumindo que os componentes internos de pipenv não mudam):

from pipenv.utils import convert_deps_to_pip
with open('Pipfile.lock') as f:
    deps = json.load(f)['default']
# remove local project which wouldn't have a hash
for k, v in list(deps.items()):
    if v.get('path') == '.':
        del(deps[k])
path_to_requirements_file_with_hashes = convert_deps_to_pip(deps)

Todos 3 comentários

não há planos para isso no momento

esta parece ser uma grande oportunidade para uma ferramenta pipenv-wheels , no entanto.

Caso alguém procure aqui uma solução, é bem fácil (assumindo que os componentes internos de pipenv não mudam):

from pipenv.utils import convert_deps_to_pip
with open('Pipfile.lock') as f:
    deps = json.load(f)['default']
# remove local project which wouldn't have a hash
for k, v in list(deps.items()):
    if v.get('path') == '.':
        del(deps[k])
path_to_requirements_file_with_hashes = convert_deps_to_pip(deps)
Esta página foi útil?
0 / 5 - 0 avaliações