Le problème survient lorsque je commence par cloner un projet git qui utilise pipenv, donc il a un Pipfile + Pipfile.lock. Je veux utiliser un environnement virtuel avec le projet, donc je lance pipenv Shell
. J'ai maintenant un environnement virtuel créé et je suis à l'intérieur de l'environnement virtuel. Le projet a évidemment beaucoup de dépendances (répertoriées dans le Pipfile). Je ne veux pas avoir à parcourir la grande liste dans le Pipfile un par un et à les installer à l'aide de pipenv install <package_name>
. Existe-t-il une commande pipenv/pip qui installe tous les packages à partir d'un fichier Pip que j'ai déjà? Ou peut-être que je dois configurer l'environnement différemment de l'exécution de pipenv Shell
? Remarque: pip freeze
ne renvoie rien.
La bonne réponse à cette question est que pipenv install
ou pipenv install --dev
(s'il existe des dépendances dev) doit être exécuté. Cela installera toutes les dépendances dans le Pipefile. Placer les dépendances dans un fichier requirements.txt puis utiliser pip fonctionnera mais ce n'est pas vraiment nécessaire. L'intérêt de l'utilisation de pipenv pour la plupart des utilisateurs est d'éviter la nécessité de gérer un fichier requirements.txt ou d'utiliser pip.
EDIT: si le virtualenv est déjà activé, vous pouvez également utiliser pipenv sync
ou pipenv sync --dev
pour le même effet.
Idéalement, nous vous encourageons à avoir un requirements.txt
fichier contenant tous les packages requis pour l'installation via pip. Vous pouvez créer ce fichier en faisant:
pip freeze > requirements.txt
Vous pouvez convertir un Pipfile et Pipfile.lock en un requirements.txt. Jetez un œil à cela
pipenv lock -r
Après cela, vous pouvez installer tous vos modules dans votre environnement virtuel python en procédant comme suit:
pip install -r requirements.txt
J'espère que j'ai répondu à votre question.
J'ai eu un problème similaire. Pour moi, j'ai quitté le virtualenv et j'ai couru
pipenv --three sync
et ça a marché.
D'après ce que je peux comprendre, l'idée est de créer un nouvel environnement virtuel en utilisant python 3 dans mon cas. Si vous utilisez python 2, la commande ci-dessus serait être édité pour lire
pipenv --two
La commande sync copie toutes les dépendances du Pipfile.lock sur le nouveau virtualenv.