web-dev-qa-db-fra.com

Où faut-il créer virtualenvs?

Je suis confus quant à où je devrais mettre mes virtualenvs.

Avec mon premier projet Django, j'ai créé le projet avec la commande

Django-admin.py startproject djangoproject

J'ai ensuite gravé le répertoire djangoproject et lancé la commande

virtualenv env

qui a créé le répertoire de l’environnement virtuel au même niveau que le répertoire interne djangoproject.

Est-ce le mauvais endroit pour créer le virtualenv pour ce projet particulier?

J'ai l'impression que la plupart des gens conservent tous leurs virtualenvs dans un répertoire totalement différent, par exemple. ~/virtualenvs, puis utilisez virtualenvwrapper pour basculer entre eux.

Y a-t-il une manière correcte de faire ceci?

92
Ray

Beaucoup de gens utilisent l'outil virtualenvwrapper , qui garde tous les virtualenvs au même endroit (le ~/.virtualenvs répertoire) et permet des raccourcis pour les créer et les conserver. Par exemple, vous pourriez faire:

mkvirtualenv djangoproject

et plus tard:

workon djangoproject

C'est probablement une mauvaise idée de conserver le répertoire virtualenv dans le projet lui-même, car vous ne souhaitez pas le distribuer (cela peut être spécifique à votre ordinateur ou à votre système d'exploitation). Au lieu de cela, conservez un fichier Requirements.txt en utilisant pip :

pip freeze > requirements.txt

et distribuer cela. Cela permettra aux personnes utilisant votre projet de réinstaller toutes les mêmes exigences dans leur virtualenv avec:

pip install -r requirements.txt
115
David Robinson

Changer l'emplacement du répertoire virtualenv le casse

C'est un avantage majeur de placer le répertoire en dehors de l'arborescence du référentiel, par exemple. en dessous de ~/.virtualenvs avec virutalenvwrapper.

Sinon, si vous le conservez dans l'arborescence du projet, le déplacement de l'emplacement du projet interrompt virtualenv.

Voir: Renommer un dossier virtualenv sans le casser

Il y a --relocatable mais il est connu pour ne pas être parfait.

Autre avantage mineur: vous n'êtes pas obligé de .gitignore il.

Si ce n’était pas le cas, je laisserais simplement mes virtualenvs gitignored dans l’arborescence du projet lui-même afin de garder les éléments connexes à proximité.

C’est très bien, car vous ne réutiliserez probablement jamais un environnement virtuel donné dans l’ensemble des projets.

L'emplacement généralement accepté pour les placer est le même endroit que l'installation par défaut de virtualenvwrapper les met: ~/.virtualenvs

En relation: virtualenvwrapper est un excellent outil qui fournit des raccourcis pour les commandes communes de virtualenv. http://www.doughellmann.com/projects/virtualenvwrapper/

4
Emmett Butler

Si vous utilisez pyenv install Python, Alors pyenv-virtualenv sera une bonne pratique. Si le fichier .python-version Est défini, il peut activer ou désactiver automatiquement l’environnement virtuel lorsque vous modifiez le dossier de travail. Pyenv-virtualenv Place également tous les envois virtuels dans le dossier $HOME/.pyenv/versions.

0
Aston