Python >> Tutoriel Python >  >> Python Tag >> PyCharm

Quelle est la différence entre l'environnement virtuel PyCharm et l'environnement Anaconda ?

Je dois préciser que anaconda n'est qu'une collection. Le vrai gestionnaire d'environnement est conda . Voici miniconda . Il contient juste les parties nécessaires pour gérer l'environnement au lieu d'un anaconda complet collecte.

conda est au-delà d'un simple gestionnaire de packages Python, mais est un gestionnaire de packages à l'échelle du système. Cela vous aidera à installer des packages sans douleur. Un exemple classique est l'installation de numpy sur Windows. Sans conda , c'est vraiment difficile car il faut un compilateur C spécifique qui est difficile à obtenir. Mais avec conda , vous pouvez installer numpy avec une seule commande conda install numpy . Il résoudra automatiquement le problème du compilateur et les dépendances C.

Revenons donc à votre question, lorsque vous créez un env dans Pycharm, il vous demandera quel env voulez-vous créer :Virtualenv Environment , Conda Environment , ou Pipenv Environment . Quant à moi, je choisis généralement Pipenv Environment car cet env sera lié au projet en cours et peut générer un fichier de verrouillage.

Dans ce cas, je pense que vous pouvez le comprendre maintenant :il n'y a pas d'environnement nommé "créé par PyCharm" ou "Anaconda". Il n'y a que des envs nommés "créés par Virtualenv, Conda ou Pipenv". Et Pycharm utilise et encapsule simplement l'un d'entre eux.

Quelle est donc la différence entre Conda Environment et Virtualenv Environment (Pipenv Environment est essentiellement un Virtualenv Environment avec pip sophistiqué ) ? La différence vient de leurs objectifs différents.

Conda Environment est généralement pour "utilisateur Python". Ils utilisent Python comme outil pour effectuer d'autres travaux tels que l'exploration Web, l'exploration de données et le traitement d'images. Ils ne savent pas grand-chose sur Python (car ils n'ont pas besoin de savoir) donc conda est aussi automatique que possible. Et leurs tâches peuvent être n'importe où sur l'ordinateur, donc les envs créés par conda sont situés dans des répertoires à l'échelle de l'utilisateur. Et ils ont parfois besoin de différentes versions de Python, cela peut être fait en conda mais pas virtualenv .

Virtualenv Environment est généralement pour "développeur Python". Ils utilisent Python pour créer des applications ou des packages. Les envs créés par Virtualenv sont généralement situés dans le répertoire du projet en cours. Vous pouvez ainsi créer un environnement pour chaque application et gérer facilement les dépendances.

Pour résumer :

Conda Environment :

  1. Gérez non seulement les packages Python, mais également les différentes versions de Python et les dépendances à l'échelle du système.
  2. Les environnements sont situés dans des répertoires à l'échelle de l'utilisateur.
  3. Moins d'environnements.

Virtualenv Environment :

  1. Gérer les packages Python. L'objectif principal est de séparer les dépendances pour chaque application.
  2. Envs sont généralement situés dans des répertoires à l'échelle du projet. (Bien que pipenv crée env dans les répertoires à l'échelle de l'utilisateur par défaut, beaucoup de gens pensent que les répertoires de projet devraient être la valeur par défaut.)
  3. Beaucoup plus d'environnements. (Un nouvel environnement pour chaque application)

Pour ma part, j'utilise les deux. J'utilise conda pour gérer différentes versions de Python et utiliser pipenv pour gérer les dépendances de mes applications.


Les deux environnements sont basés sur virtualenv de python, vous pouvez les utiliser indépendamment et configurer (ou installer) des packages à l'intérieur selon vos besoins, sans vous soucier des conflits. C'est l'essence de virtualenv.

Anaconda est une distribution python (tout comme les distributions Linux), elle ajoute par défaut d'autres packages en fonction de son opinion sur les besoins des développeurs. Par conséquent, l'installation est plus importante que si vous installez du python plain vanilla. C'est aussi pourquoi son environnement virtuel est assez vaste.

Pycharme est un IDE, qui prend en charge la fonctionnalité virtualenv de python. Il peut donc le créer pour vous, si vous le souhaitez. Il peut utiliser une distribution python simple pour le créer, il aura donc une taille plus petite que s'il utilise une distribution comme Anaconda, comme vous l'avez remarqué.

Le problème de taille n'est pas spécifique à Anaconda, si vous listez tous les packages installés pour vous par anaconda conda list et installez-le manuellement vous-même dans l'environnement virtuel "léger", vous verrez également la taille augmenter. Je crois que vous comprenez mon point.