Pipenv: construire des roues avec pipenv?

Créé le 7 mars 2018  ·  3Commentaires  ·  Source: pypa/pipenv

J'aimerais pouvoir générer des roues pour toutes les dépendances dans un Pipfile.lock tout en profitant de la vérification du hachage. Avant la version 11.1.2, vous pouviez accomplir cela avec :

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

_(#1417 était problématique pour ce flux de travail, mais sinon cela fonctionnait)_

Dans 11.1.2, les hachages ont été supprimés de la sortie de style requirements, ce qui (autant que je sache) signifie qu'il n'y a aucun moyen de créer/télécharger des roues vérifiées par hachage à partir d'un fichier de verrouillage.

Le cas d'utilisation consiste à empaqueter des modules Python pour des installations hors ligne ou des installations sans outils de compilation/développement sur le serveur. Les roues peuvent être construites, puis distribuées et installées dans un environnement Python minimal.


Est-ce cette fonctionnalité que vous envisageriez d'inclure dans le projet ? Si ce n'est pas le cas, existe-t-il un moyen de prendre à nouveau en charge ce flux de travail ?

Commentaire le plus utile

Juste au cas où quelqu'un chercherait ici une solution, c'est assez simple (en supposant que les composants internes pipenv ne changent pas):

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)

Tous les 3 commentaires

pas de plans pour ça pour le moment

cela semble cependant être une excellente opportunité pour un outil pipenv-wheels .

Juste au cas où quelqu'un chercherait ici une solution, c'est assez simple (en supposant que les composants internes pipenv ne changent pas):

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)
Cette page vous a été utile?
0 / 5 - 0 notes