Pipenv: construyendo ruedas con pipenv?

Creado en 7 mar. 2018  ·  3Comentarios  ·  Fuente: pypa/pipenv

Me gustaría poder generar ruedas para todas las dependencias en un Pipfile.lock mientras aprovecho la verificación de hash. Antes de 11.1.2, podría lograr esto con:

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

_(#1417 fue problemático para este flujo de trabajo, pero por lo demás funcionó)_

En 11.1.2, los hash se eliminaron de la salida de estilo de requisitos, lo que (afaik) significa que no hay forma de crear/descargar ruedas verificadas por hash desde un archivo de bloqueo.

El caso de uso es empaquetar módulos de Python para instalaciones fuera de línea o instalaciones sin herramientas de compilación/desarrollo en el servidor. Las ruedas se pueden construir, luego distribuir e instalar en un entorno mínimo de Python.


¿Es esta funcionalidad la que consideraría incluir en el proyecto? Si no, ¿hay alguna forma de admitir este flujo de trabajo nuevamente?

Comentario más útil

En caso de que alguien busque aquí una solución, es bastante fácil (suponiendo que las partes internas pipenv no cambien):

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 comentarios

no hay planes para esto en este momento

Sin embargo, esto suena como una gran oportunidad para una herramienta de pipenv-wheels .

En caso de que alguien busque aquí una solución, es bastante fácil (suponiendo que las partes internas pipenv no cambien):

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)
¿Fue útil esta página
0 / 5 - 0 calificaciones