web-dev-qa-db-fra.com

Environnement virtuel pour Python Django

Je suis actuellement novice en programmation Web. Je travaille sur ce projet Django récemment et je lis des ouvrages sur les environnements virtuels. Au début de mon projet, je n’étais pas en mesure de créer un environnement virtuel et j’ai donc poursuivi le projet sans ce dernier. Mes questions sont

Si cet environnement virtuel est vraiment nécessaire?

Si je veux créer plus de projets Django à l'avenir, aurai-je besoin de cet environnement virtuel pour les différencier, car à l'heure actuelle, j'exécute toutes les commandes de la commande Invite à partir de mon répertoire principal C:?

Cet environnement virtuel différencie-t-il plusieurs projets ou sépare-t-il chaque projet en fonction de la version de Django/Python avec laquelle il est codé ou des deux? Je me demande parce que je saisis actuellement des commandes telles que python manage.py runserver (sans environnement virtuel) dans mon répertoire de lecteur C: principal. Cela signifie-t-il que je ne peux pas faire plusieurs projets à la fois sans un environnement virtuel pour chacun? Puis-je toujours travailler sur plusieurs projets sans environnement virtuel? (J'ai été confus à ce sujet en particulier)

Devrais-je simplement essayer de configurer un environnement virtuel pour mon prochain projet ou puis-je le faire pour ce projet en cours (je suis déjà à mi-parcours du projet, j'ai déjà créé des modèles, des vues, des modèles, etc.)? 

Toute réponse pour clarifier ma confusion est grandement appréciée!

6
Steve D.

C'est l'une des questions les plus courantes chez les débutants. J'ai moi-même fait face à la question et ai construit plusieurs projets sans me soucier de l'environnement virtuel.

Mais récemment, j'ai compris l'importance d'utiliser des environnements virtuels. L'utilisation des environnements virtuels présente les avantages suivants:

  1. Gestion des dépendances : Prévenez les conflits entre les dépendances de plusieurs projets.
  2. Facilité d’installation et configuration d’un nouveau projet sur différentes machines: enregistrez vos dépendances dans le fichier Requirements.txt et exécutez pip install -r requirements.txt pour installer les dépendances où vous le souhaitez.
5
Pulkit Pahwa

Sans environnements virtuels, tous vos projets utiliseront les mêmes packages installés.

Lorsque vous souhaitez déplacer un projet sur un serveur à la fin de l'opération, vous ne savez pas quels packages sont nécessaires pour ce projet. Votre seule option est donc d'installer également tous ces packages à cet emplacement. La liste deviendra rapidement longue et de nombreux packages ne seront pas nécessaires pour ce projet particulier.

Lorsque vous utilisez un environnement virtuel, vous disposez d'un ensemble de packages installés pour chaque projet et ils ne se mélangent pas. Beaucoup mieux.

Vous pouvez commencer à utiliser env virtuel maintenant. Dans votre répertoire de projet, faites:

pip install virtualenv  

Vous avez maintenant la commande virtualenv (pour tous les projets).

virtualenv env

Vous avez maintenant un répertoire "env" dans votre répertoire de projet qui contiendra le fichier virtualenv de ce projet.

env\Scripts\activate

Maintenant, vous utilisez ce virtualenv (votre invite a été modifiée pour refléter cela).

pip install Django

Installe Django uniquement pour ce projet.

pip freeze

Vous indique quels packages sont installés, maintenant uniquement pour ce projet.

pip freeze > requirements.txt

Crée un fichier Requirements.txt que vous pouvez utiliser pour vous rappeler quels packages doivent être installés et en tant qu'entrée pour

pip install -r requirements.txt

Cela les installe. Et c'est plus ou moins tout ce dont vous avez besoin.

8
RemcoGerlich

En Java, toutes les bibliothèques utilisées peuvent être regroupées dans un fichier war ou jar. L'avantage est que vous n'avez pas à vous soucier des environnements du système d'exploitation.

Python est un langage purement dynamique. Sans environnement virtuel, toutes les bibliothèques python doivent être installées dans le chemin du système et partagées entre tous les projets python. 

Imaginez que vous développiez un projet Django 1.10. Vous trouvez un projet de démonstration. Vous voulez l'exécuter sur votre machine. Mais ce n'est compatible qu'avec Django 1.8. Vous ne pouvez pas installer deux versions de la même bibliothèque sur le même ordinateur, vous êtes donc bloqué.

L'environnement virtuel résout un problème comme celui-ci. 

Mais bien sûr, l'environnement virtuel n'est pas parfait. Il y a des bibliothèques python comme mysql-python qui dépendent de libmysqld. Si ces bibliothèques sont utilisées dans votre projet, il ne peut pas être totalement indépendant avec les paramètres du système d'exploitation. Je pense que la meilleure pratique consiste à utiliser une machine virtuelle combinée à un menu fixe. IDE comme pycharm prend en charge l'exécution à distance via le menu fixe

3
bresai

L'environnement virtuel crée une installation virtuelle de python et de packages sur votre ordinateur. Par exemple, si vous avez votre application Web. Avec le temps, les paquetages sont mis à jour et il y a des changements qui bousculent parfois la compatibilité en arrière sur laquelle votre application Web ou votre projet Web peut dépendre de . faites-le si vous voulez tester les nouvelles fonctionnalités d'une mise à jour de paquet, mais vous ne voulez pas non plus casser votre application Web. Après tout, vous ne pouvez pas supprimer votre site Web chaque fois qu'un paquet est mis à jour. C'est bien là que l'environnement virtuel entre en jeu. Vous pouvez créer un environnement virtuel contenant la version la plus récente du paquet ou l'environnement virtuel de votre ancienne version du paquet , Mais heureusement, Anaconda nous facilite vraiment les choses. (Un gestionnaire virtuel est déjà inclus dans Anaconda.)

0
Shulav karki

Vous avez besoin d'environnements virtuels Python pour gérer les dépendances de packages Python de votre projet. Ainsi, les packages de version appropriés seront toujours conservés, par exemple lors d'une installation sur une autre machine. Les environnements virtuels Python peuvent être gérés avec pip (pour les packages) et virtualenv (pour les environnements virtuels), OR avec conda (qui fait les deux).

Pour plus d'informations, consultez cet article: " Pourquoi avez-vous besoin des environnements Python et comment les gérer avec Conda ".

0
krubo