Un environnement virtuel est un espace de travail isolé, das lequel les paquets installés n'interférent pas avec d'autres paquets. Ils permettent ainsi une gestion des paquets plus efficaces, par exemple, en évitant souvent les conflits pouvant survenir entre différents paquets installés sur votre système.
pip est l'installateur officiel de paquets pour python
le module python venv est le module officiel du langage pour créer des environnement virtuel
virtualenv est un logiciel open source avancé permettant de créer des environnements python. Il possède plus de fonctionnalités que venv, c'est pourquoi il est plus fréquement utilisé
pyenv est un logiciel open source vous permettant de gérer différentes version de python. Il est utile quand vous utilisez par exemple différentes versions de python par projet
pyenv-virtualenv est un plugin de pyenv permettant de gérer des environnements virtuels crée avec virtualenv ou conda
Python Package Index (PyPI) est le dépot officiel du langage python pour rechercher, installer et publier des packages python
Pour installer pyenv, le plus simple est de cloner le dépot github concerné
pyenv install --list
pyenv install 3.9.0
pyenv install miniconda3-latest
pyenv versions
pyenv virtualenv 3.9.0 datascience-py3.9
pyenv activate datascience-py3.9
Dans votre environnement nouvellement crée, il n'y a encore aucun paquet (à par pip et setuptools). Vous allez installer les paquets nécessaires à fonctionnement du code de votre projet:
pip install jupyter notebook matplotlib pandas numpy
requirements.txt
(conseillé pour les projets)¶pip install -r requirements.txt
Vous pouvez configurer pyenv pour qu'il active automatiquement un environnement virtuel dans un projet, en vous mettant à la racine de celui-ci et utilisant la commande :
pyenv local datascience-py3.9
pyenv va alors créer un fichier .python-version
dans le repertoire courant et activera automatiquement l'environnement virtuel préalablement spécifié à chaque fois que vous vous positionner dans ce répertoire !
pyenv uninstall 3.9.0
Anaconda est une entreprise spécialisée dans la data science. Elle edite un toolkit open-source et cross-palteforme contenant de nombreux packages python essentiels pour la data science. Cette solution est très utilisée par les data scientist pour construire, distribuer, installer et maintenir des logiciels grâce a une distribution sous forme de paquets et conda une logiciel de gestion de paquets et d'environnements
La distribution d'anaconda est très complète et contient plus de 1500 paquets pour la data science (mais pèse plus de 3Go!). Dans la plupart des utilisations courantes, les data scientist ont besoin de moins de paquets et préfèrent utiliser la distribution miniconda, contenant uniquement les paquets les plus courament utilisé. Je vous recommande plutôt d'installer miniconda
A cette étape, je suppose que vous avez déja installé miniconda3 via le dépot officiel ou avec pyenv: pyenv install miniconda-latest
Si vous avez utilisé la distribution anaconda/miniconda pour installer python et des packages additionnels pour la data science, ils ont été installé dans un environnement virtuel par défaut nommé base
Cependant, lorsque vous démarrez un nouveau projet, il est recommandé de vous créer un nouvel environnent virtuel. Par exemple, pour créer un enrivonnement nommé myenv
:
conda create -n myenv
Puis activez cet environnement:
conda activate myenv
Vous pouvez ensuite y installer tous les paquets nécessaires à votre projet, par exemple:
conda install scipy=0.15 pandas
ou encore specifier précisement la version de python et les packages à installer au moment de la création de votre environnement:
conda create -n myenv python=3.6 scipy=0.15.0 astroid babel
Vous pouvez afficher la liste de vos environnements avec la commande:
conda env list
A l'intérieur d'un environnemnt virtuel vous pouvez afficher la liste des paquets installés:
conda list
Vous pouvez filtrer un paquet en particlulier, par exemple pandas:
conda list pandas
Ou si vous souhaitez des infos détaillé sur un paquet:
conda search pandas --info
Vous pouvez distribuer votre environnement afin que vos colaborateurs puissent travailler dans le même environnement (par exemple en le partangeant ou en l'installant sur un serveur) à partir d'un fichier de configuration au format yaml
Vous pouvez créer à la main un fichier myenv.yml
pour l'environnement myenv
:
name: myenv
channels:
- javascript
dependencies:
- python=3.6
- bokeh=0.9.2
- numpy=1.9.*
Ou encore exporter un environnement virtuel déja crée:
conda env export > myenv.yml
Il ne vous reste qu'a partager ce fichier, vos collaborateurs pourront, par exemple, installer un clone de votre environnement sur leur machine:
conda env create -f myenv.yml
conda remove -n myenv -all
Nous avons vu dans les démos précédantes comment créer et gérer des paquets au sein d'environnements virtuels avec deux frameworks : pip + pyenv-virtualenv et conda
Les deux solutions sont couramment utilisées dans la communauté data science et suffiront généralement chacune pour vos besoins.
J'ai résumé certains de leurs avantages et incovénients ci dessous:
Si vous débutez et vous souhaitez avoir une installation de python fonctionnelle rapidement conda me semble un bon choix. Si vous aimez paramétrer plus finement vos environnements de développement alors préférez pip + pyenv-virualenv
Les deux solutions étant assez facilement interfacables, vous serez rarement handicapé par le choix de l'une ou l'autre