... | @@ -89,32 +89,43 @@ La solution : |
... | @@ -89,32 +89,43 @@ La solution : |
|
Les ennuis commencent en général quand on veut mettre Python à jour (la dernière version est actuellement 3.10, il y a maintenant environ une mise à jour par an), ou que l'on a besoin d'une version particulière de Python et/ou de certaines bibliothèques.
|
|
Les ennuis commencent en général quand on veut mettre Python à jour (la dernière version est actuellement 3.10, il y a maintenant environ une mise à jour par an), ou que l'on a besoin d'une version particulière de Python et/ou de certaines bibliothèques.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:
|
|
|
|
* py --list : quelles versions de python sont installées
|
|
|
|
* py --list-paths (sans espace entre list et -path!) : quelles versions de python sont installées, avec leurs paths
|
|
|
|
* py -3.9 : lancer python 3.9 (et le prompt >>> apparaît $ la place du prompt shell ; pour quitter : exit() ou CTRL Z + return)
|
|
|
|
* py -3.9 toto.py ; lancer le script toto en python 3.9
|
|
|
|
|
|
|
|
|
|
|
|
## 3. Définir et travailler dans un environnement virtuel
|
|
## 3. Définir et travailler dans un environnement virtuel
|
|
C'est expliqué dans la [doc en français de Python 3.10](https://docs.python.org/fr/3/library/venv.html)
|
|
C'est expliqué dans la [doc en français de Python 3.10](https://docs.python.org/fr/3/library/venv.html)
|
|
Un **environnement virtuel** est un techniquement un répertoire, mais on n'y touche pas, il faut passer par le module qui va le gérer, **venv**.
|
|
Un **environnement virtuel** est un techniquement un répertoire, mais on n'y touche pas, il faut passer par le module qui va le gérer, **venv**.
|
|
|
|
|
|
Création d'un environnement virtuel :
|
|
### Création d'un environnement virtuel :
|
|
-
|
|
-
|
|
on peut spécifier la version de Python
|
|
on peut spécifier la version de Python
|
|
``` shell
|
|
``` shell
|
|
python -m venv /path/to/new/virtual/environment
|
|
python -m venv /path/to/new/virtual/environment
|
|
python -3.10 -m venv /path/to/new/virtual/environment
|
|
python -3.10 -m venv /path/to/new/virtual/environment
|
|
|
|
python -3.10 -m venv nom_venv_dans_repertoire_du_prompt
|
|
|
|
py -3.10 -m venv nom_venv_dans_repertoire_du_prompt
|
|
```
|
|
```
|
|
|
|
![capture_rep_venv](uploads/2082d8fb83e455931a8d333307658e9b/capture_rep_venv.png)
|
|
|
|
|
|
:bulb: pour ouvrir une fenêtre **invite de commande dans un répertoire**, il suffit de taper **cmd dans la barre de navigation de l'explorateur**
|
|
:bulb: pour ouvrir une fenêtre **invite de commande dans un répertoire**, il suffit de taper **cmd dans la barre de navigation de l'explorateur**
|
|
|
|
|
|
![capture_cmd_dans_barre_navigation](uploads/55abf9a7246c73b8420686697f86b1dc/capture_cmd_dans_barre_navigation.png)
|
|
![capture_cmd_dans_barre_navigation](uploads/55abf9a7246c73b8420686697f86b1dc/capture_cmd_dans_barre_navigation.png)
|
|
|
|
|
|
|
|
### Activation d'un environnement virtuel
|
|
|
|
Sous Windows
|
|
|
|
Èn ligne de commande, à l'emplacement du venv voulu, ici `mon_venv`, tapez
|
|
|
|
`chemin_courant>mon_venv\Scripts\activate.bat`
|
|
|
|
Le prompt change alors en :
|
|
|
|
`(mon_venv) chemin_courant >`
|
|
|
|
|
|
## 4. Distribuer un code en précisant toutes les dépendances
|
|
## 4. Distribuer un code en précisant toutes les dépendances
|
|
|
|
|
|
|
|
### fichier des modules obtenus avec pip freeze
|
|
|
|
`pip freeze` génère la liste des modules installés, avec leur version.
|
|
|
|
Le signe de redirection `>` permet d'envoyer cette liste dans un fichier, habituellement appelé "requirements.txt". Le destinataire du fichier n'aura plus qu'à créer un environnement similaire.
|
|
|
|
|
|
|
|
`(mon-env) $ pip freeze > requirements.txt`
|
|
|
|
|
|
|
|
### fichier Poetry
|
|
|
|
|
|
|
|
|
|
## Quelques ressources :
|
|
## Quelques ressources :
|
|
|
|
|
|
- tuto du site [Pypi](https://packaging.python.org/tutorials/installing-packages/) qui met à disposition un catalogue de paquets
|
|
- tuto du site [Pypi](https://packaging.python.org/tutorials/installing-packages/) qui met à disposition un catalogue de paquets
|
... | | ... | |