Pipenv: строить колеса с помощью pipenv?

Созданный на 7 мар. 2018  ·  3Комментарии  ·  Источник: pypa/pipenv

Я хотел бы иметь возможность генерировать колеса для всех зависимостей в Pipfile.lock , используя при этом проверку хэша. До версии 11.1.2 это можно было сделать с помощью:

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

_(#1417 был проблематичным для этого рабочего процесса, но в остальном он работал)_

В версии 11.1.2 хэши были удалены из вывода в стиле требований, что (на самом деле) означает, что невозможно создать/загрузить проверенные хэшем колеса из файла блокировки.

Вариант использования — упаковать модули Python для автономной установки или установки без инструментов компиляции/разработки на сервере. Колеса можно построить, затем распространить и установить в минимальной среде Python.


Эту функциональность вы хотели бы включить в проект? Если нет, есть ли способ снова поддержать этот рабочий процесс?

Самый полезный комментарий

На всякий случай, если кто-то ищет здесь решение, это довольно просто (при условии, что внутренние компоненты pipenv не меняются):

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)

Все 3 Комментарий

на данный момент планов на это нет

это звучит как отличная возможность для инструмента pipenv-wheels .

На всякий случай, если кто-то ищет здесь решение, это довольно просто (при условии, что внутренние компоненты pipenv не меняются):

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)
Была ли эта страница полезной?
0 / 5 - 0 рейтинги