web-dev-qa-db-fra.com

Quelle est la différence entre PyCharm Virtual Environment et Anaconda Environment?

Lorsque je crée un nouveau projet dans PyCharm, cela crée un nouvel environnement virtuel. J'ai lu que lorsque j'exécute des scripts Python, ils sont exécutés à l'aide de l'interpréteur de cet environnement plutôt que de l'environnement système. Donc, si j'ai besoin d'installer des paquets, je peux les installer uniquement dans cet environnement et pas dans l'environnement système. C'est super.

J'ai aussi lu sur Anaconda Environment. Lorsque je crée un nouvel environnement Anaconda, il en crée un autre en dehors de l'environnement système. Pour mes projets, je peux utiliser cet environnement et installer uniquement les packages requis ici, mais pas dans l'environnement système principal.

Ma question est la suivante: quelle est la différence entre l’environnement virtuel créé par PyCharm et l’environnement créé par Anaconda? L’environnement virtuel créé par PyCharm est d’environ 15 à 20 Mo alors que celui d’Anaconda est de 90 Mo. Donc, il doit y avoir une différence. De plus, j'ai lu que je pouvais configurer PyCharm pour utiliser l'interpréteur Anaconda Environment. 

Alors, quelle est la différence entre les environnements créés par PyCharm et Anaconda?

8
Nagabhushan S N

Je dois préciser que anaconda n'est qu'une collection. Le responsable de l'environnement réel est conda. Ici est miniconda. Il ne contient que les éléments nécessaires à la gestion de l'environnement au lieu d'une collection anaconda complète.

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


Revenons à votre question. Lorsque vous créez un env dans Pycharm, il vous demandera quel env vous voulez créer: Virtualenv Environment, Conda Environment ou Pipenv Environment. Quant à moi, je choisis habituellement 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 maintenant le comprendre: il n’ya pas d’env nommé "créé par PyCharm" ou "Anaconda". Il n'y a que les envs nommés "créés par Virtualenv, Conda ou Pipenv". Et Pycharm en utilise et en enveloppe un.


Alors, quelle est la différence entre Conda Environment et Virtualenv Environment (Pipenv Environment est essentiellement un Virtualenv Environment avec sophistiqué pip)? La différence vient de leurs buts 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 connaissent pas grand chose à propos de Python (car ils n'ont pas besoin de savoir) alors conda est aussi automatique que possible. Et comme leurs tâches peuvent être situées n'importe où sur l'ordinateur, les envs créés par conda sont situés dans des répertoires utilisateur. Et ils ont parfois besoin de différentes versions de Python, ceci peut être fait dans conda mais pas virtualenv.

Virtualenv Environment est généralement utilisé pour "développeur Python". Ils utilisent Python pour construire des applications ou des packages. Les env créés par Virtualenv sont généralement situés dans le répertoire du projet en cours. Vous pouvez donc créer un env 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 différentes versions de Python et leurs dépendances à l’échelle du système.
  2. Les Env sont situés dans des répertoires utilisateur.
  3. Moins envs.

Virtualenv Environment:

  1. Gérer les paquets Python. Le but principal est de créer des dépendances pour chaque application.
  2. Les enveloppes sont généralement situées dans des répertoires de projet (bien que pipenv crée par défaut des env dans des répertoires de utilisateur, de nombreuses personnes pensent que les répertoires de projet devraient être les répertoires par défaut).
  3. Beaucoup plus env. (Un nouvel env pour chaque application)

Pour moi, je les utilise tous les deux. J'utilise conda pour gérer différentes versions de Python et pipenv pour gérer les dépendances de mes applications.

6
Sraw

Les deux environnements sont basés sur virtualenv de python. Vous pouvez les utiliser indépendamment et configurer (ou installer) les packages qu’il contient à votre guise, sans vous soucier des conflits. C'est l'essence de virtualenv. 

Anaconda est une distribution Python (tout comme les distributions Linux), il ajoute par défaut d'autres paquets basés sur son opinion de ce dont les développeurs ont besoin. Par conséquent, l'installation est plus grande que si vous installez un python Vanilla simple. C'est aussi pourquoi son environnement virtuel est assez grand. 

Pycharm est un IDE prenant en charge la fonctionnalité virtualenv de python. Donc, il peut le créer pour vous, si vous le souhaitez. Il peut utiliser une distribution simple en python pour le créer, ainsi sa taille sera plus petite que si elle utilisait une distribution comme Anaconda, comme vous l'avez remarqué. 

Le problème de taille n’est pas spécifique à Anaconda. Si vous répertoriez tous les paquets installés pour vous par anaconda conda list et si vous l’installez manuellement vous-même dans le virtualenv "léger", vous verrez également la taille augmenter. Je crois que tu comprends mon point.

0
Saheed Bolarinwa