diff --git a/sessions/python-11.md b/sessions/python-11.md index 050ca79..6f7a409 100644 --- a/sessions/python-11.md +++ b/sessions/python-11.md @@ -82,6 +82,8 @@ print(sys.path) * /usr/lib/python3.7/site-packages ``` +* Le chemin courant à la priorité sur la bibliothèque standard! + # À noter Seul deux des composants sont accessibles en *écriture* par @@ -127,7 +129,7 @@ Mais comment faire pour le mettre dans `sys.path`? On peut récupérer les sources et les installer avec `python3 setup.py install --user` -* Quasiment *tous* les projets python on un `setup.py` utilisable de cette façon. +* Quasiment *tous* les projets python ont un `setup.py` utilisable de cette façon. * On utilise `--user` pour éviter des problèmes de permissions * Démo! @@ -181,7 +183,7 @@ cli_ui.info("Ceci est en", cli_ui.bold, "gras") En fait, `cli-ui` utilise *d'autres* bibliothèques. -Par example: +Par exemple: ```python headers=["name", "score"] @@ -218,16 +220,16 @@ setup( * S'utilise avec `python3 -m pip install --user ...` -# Fonctionalités en plus +# Fonctionnalités en plus -* Peut supprimer quelque chose d'installé - `python3 -m pip uninstall <>` +* Peut supprimer quelque chose installé - `python3 -m pip uninstall <>` * Peut chercher sur `pypi` directement - `python3 -m pip search <>` * Peut lister ce qui est installé - `python3 -m pip list` # Limitations de pip seul * Il faut penser à utiliser `--user` -* Si le paquet est déjà installé dans le système (genre `/usr/lib/` source linux), +* Si le paquet est déjà installé dans le système (genre `/usr/lib/` sous Linux), pip ne saura pas le mettre à jour - il faudra passer par le gestionnaire de paquet de la distribution @@ -259,11 +261,11 @@ Comment faire pour travailler sur les deux projets? * Un chemin *isolé* du reste du système. * Contient un binaire python légèrement différent du binaire ordinaire. -* Se crée avec `python3 -m venv ` - sauf sous debian ;-( +* Se crée avec `python3 -m venv ` - sauf sous Debian ;-( # Avec virtualenv -* Vous pouvez aussi install `virtualenv` avec pip puis utiliser `virtualenv` +* Vous pouvez aussi installer `virtualenv` avec pip puis utiliser `virtualenv` ```bash $ python3 -m pip install virtualenv --user @@ -290,3 +292,21 @@ Si taper le chemin du virtualenv vous embête, vous pouves *l'activer* avec `source bin/activate` Pour sortir: `deactivate`. + +# Les règles + +* Un virtualenv par projet et par version de Python +* Toujours utiliser pip depuis un virtualenv + +C'est plus long, mais ça vous évitera un tas de problèmes ... + +# Pour aller plus loin + +* `requirements.txt` +* `pipenv` +* `poetry` + +Veillez à bien comprendre le problème que ces outils résolvent avant de vous +en servir! + +On y reviendra