| @@ -82,6 +82,8 @@ print(sys.path) | |||||
| * /usr/lib/python3.7/site-packages | * /usr/lib/python3.7/site-packages | ||||
| ``` | ``` | ||||
| * Le chemin courant à la priorité sur la bibliothèque standard! | |||||
| # À noter | # À noter | ||||
| Seul deux des composants sont accessibles en *écriture* par | 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` | 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 | * On utilise `--user` pour éviter des problèmes de permissions | ||||
| * Démo! | * 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. | En fait, `cli-ui` utilise *d'autres* bibliothèques. | ||||
| Par example: | |||||
| Par exemple: | |||||
| ```python | ```python | ||||
| headers=["name", "score"] | headers=["name", "score"] | ||||
| @@ -218,16 +220,16 @@ setup( | |||||
| * S'utilise avec `python3 -m pip install --user ...` | * 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 chercher sur `pypi` directement - `python3 -m pip search <>` | ||||
| * Peut lister ce qui est installé - `python3 -m pip list` | * Peut lister ce qui est installé - `python3 -m pip list` | ||||
| # Limitations de pip seul | # Limitations de pip seul | ||||
| * Il faut penser à utiliser `--user` | * 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 | pip ne saura pas le mettre à jour - il faudra passer par le gestionnaire de paquet de | ||||
| la distribution | la distribution | ||||
| @@ -259,11 +261,11 @@ Comment faire pour travailler sur les deux projets? | |||||
| * Un chemin *isolé* du reste du système. | * Un chemin *isolé* du reste du système. | ||||
| * Contient un binaire python légèrement différent du binaire ordinaire. | * Contient un binaire python légèrement différent du binaire ordinaire. | ||||
| * Se crée avec `python3 -m venv <le chemin>` - sauf sous debian ;-( | |||||
| * Se crée avec `python3 -m venv <le chemin>` - sauf sous Debian ;-( | |||||
| # Avec virtualenv | # Avec virtualenv | ||||
| * Vous pouvez aussi install `virtualenv` avec pip puis utiliser `virtualenv` | |||||
| * Vous pouvez aussi installer `virtualenv` avec pip puis utiliser `virtualenv` | |||||
| ```bash | ```bash | ||||
| $ python3 -m pip install virtualenv --user | $ 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` | *l'activer* avec `source bin/activate` | ||||
| Pour sortir: `deactivate`. | 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 | |||||