47 votes

Faire en sorte que Pipenv crée le virtualenv dans le même dossier

Je veux que Pipenv crée un environnement virtuel dans le même dossier que mon projet (Django).

J'ai cherché et trouvé le PIPENV_VENV_IN_PROJECT mais je ne sais pas où et comment l'utiliser.

0 votes

Qu'espérez-vous que PIPENV_DOTENV_LOCATION ferait ? Il fait pas n'a rien à voir avec l'emplacement du virtualenv que Pipenv crée.

0 votes

@MartijnPieters désolé je l'ai modifié je veux dire PIPENV_VENV_IN_PROJECT

67voto

Martijn Pieters Points 271458

PIPENV_VENV_IN_PROJECT est une variable d'environnement, il suffit de la définir (la valeur n'a pas d'importance, mais elle ne doit pas être vide). Assurez-vous de l'exporter pour que les processus enfants du shell puissent la voir :

export PIPENV_VENV_IN_PROJECT="enabled"

Cela entraîne la création d'un virtualenv dans le fichier .venv à côté du répertoire Pipfile fichier. Utilisez unset PIPENV_VENV_IN_PROJECT pour supprimer à nouveau l'option.

Vous voudrez peut-être voir si le direnv projet peut être utile ici. Il définira les variables d'environnement pour vous, automatiquement, lorsque vous entrerez dans le répertoire de votre projet, à condition que vous ayez créé un fichier de type .envrc dans le répertoire du projet et activer le répertoire avec direnv . Vous pouvez ensuite ajouter de tels export dans ce fichier.

42voto

DAMAR225 Points 960

Cela peut aider quelqu'un d'autre J'ai trouvé un autre moyen facile de résoudre ce problème !

Il suffit de créer un dossier vide dans votre projet et de le nommer .venv

et pipenv utilisera ce dossier.

4 votes

J'ai pensé que c'était la réponse la plus simple et ça marche comme un charme ! !!

0 votes

C'est la solution la plus simple à mon avis.

4voto

Weilao Points 21

Essayez

PIPENV_VENV_IN_PROJECT=1 pipenv sync -d

0 votes

PIPENV_VERBOSITY=-1 PIPENV_VENV_IN_PROJECT=1 pipenv install --python 3.8.7 vous donnera également une version spécifique de python. La synchronisation n'a pas fonctionné pour moi.

3voto

Gringo Suave Points 5985

Pour la coquille du poisson, utiliser :

set -Ux PIPENV_VENV_IN_PROJECT 1

0voto

xxyjoel Points 189

Pour la postérité, si vous constatez que pipenv ne crée pas d'environnement virtuel au bon endroit, il se peut que vous ayez un Pipfile erroné quelque part, ce qui crée une confusion avec le fichier pipenv shell dans ce cas, je le supprimerais des emplacements de chemin qui ne sont pas explicitement liés à un référentiel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X