Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. [[:python:accueilpython|{{ :iconemaison.jpg?nolink&30|Sommaire Python et microPython}}]] ==== Python - Gérer plusieurs versions de Python sous Windows avec pyenv-win ==== [Mise à jour le : 19/2/2025] * **Sources** * **Github** : <html><a href="https://github.com/pyenv-win/pyenv-win" target="_blank">pyenv-win</a></html> * **Ressources** * **Real Python** : <html><a href="https://realpython.com/intro-to-pyenv/" target="_blank">Managing Multiple Python Versions With pyenv</a></html> \\ ---- \\ === 1. Pourquoi utiliser pyenv-win ? === pyenv-win est la version Windows de pyenv. pyenv est un excellent outil pour **gérer plusieurs versions de Python**. Même si Python est déjà installé sur votre système, il est interressant d'installer pyenv afin de pouvoir facilement tester de nouvelles fonctionnalités du langage ou contribuer à un projet qui utilise une version différente de Python. L'utilisation de pyenv est également un excellent moyen d' installer des versions préliminaires de Python afin de pouvoir les tester pour détecter les bugs. \\ <callout type="tip" title="POWERSHELL" color="blue" icon="true">Les commandes ci-dessous nécessitent **powershell** (en administrateur).</callout> === 2a. Installer pyenv-win === - Vérifier que powershell autorise l'exécution des scripts.\\ <code powershell *.powershell> Get-ExecutionPolicy # Si restricted faire Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser </code> - Installez pyenv-win <code powershell *.powershell> Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"</code> - Rouvrir PowerShell \\ \\ - Exécutez **pyenv <nowiki>--</nowiki>version** pour vérifier si l'installation a réussi.<code powershell *.powershell>pyenv --version # Exemple de résultat : pyenv 3.1.1</code> === 2b. Désinstaller pyenv-win === <code powershell *.powershell> Remove-Item -Recurse -Force $env:USERPROFILE\.pyenv </code> === 3. Installer plusieurs versions de Python === - Exécutez **pyenv install -l** pour obtenir la liste des versions de Python prises en charge par pyenv-win. <code powershell *.powershell> PS C:\Users\phili> pyenv install -l :: [Info] :: Mirror: https://www.python.org/ftp/python :: [Info] :: Mirror: https://downloads.python.org/pypy/versions.json :: [Info] :: Mirror: https://api.github.com/repos/oracle/graalpython/releases 2.4-win32 2.4.1-win32 2.4.2-win32 ... </code> - Exécutez **pyenv install** <version> pour installer la version prise en charge. <code powershell *.powershell> pyenv install 3.10.11 # Résultat -> # :: [Info] :: Mirror: https://www.python.org/ftp/python # :: [Info] :: Mirror: https://downloads.python.org/pypy/versions.json # :: [Info] :: Mirror: https://api.github.com/repos/oracle/graalpython/releases # :: [Downloading] :: 3.10.11 ... # :: [Downloading] :: From https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe # :: [Downloading] :: To C:\Users\phili\.pyenv\pyenv-win\install_cache\python-3.10.11-amd64.exe # :: [Installing] :: 3.10.11 ... </code> === 4. Version globale, version locale === <callout type="warning" title="GLOBAL" icon="true">Avec pyenv, la version globale de Python est celle qui sera utilisée par défaut pour tous les projets, sauf si une version locale ou spécifique est définie.</callout> * **Définir une version globale** \\ Exécutez **pyenv global** <version> pour définir une version Python comme version globale. <code powershell *.powershell># Exemple pyenv global 3.12.7 </code> * **Définir une version locale** \\ Exécutez **pyenv local** <version> pour définir une version locale de Python pour un projet spécifique. \\ \\ Dans le répertoire **du projet**, exécutez : \\ <code ps *.powershell> # Exemple pyenv local 3.10.11 </code> * **Vérifications** - Vérifiez quelle version de Python vous utilisez et son chemin <code powershell *.powershell>pyenv version # Résultat -> 3.12.7 (set by C:\Users\phili\.pyenv\pyenv-win\version)</code> - Vérifiez que Python fonctionne <code powershell *.powershell>python -c "import sys; print(sys.executable)" # Résultat -> C:\Users\phili\.pyenv\pyenv-win\versions\3.12.7\python.exe </code> - Restreindre l'exécution des scripts.\\ <code powershell *.powershell> Set-ExecutionPolicy Restricted </code> \\ {{ :python:outils:arborescencepyenv.png?nolink|}} === 5. Les bibliothèques === * **Installer une bibliothèque dans le répertoire de travail** <callout type="tip" title="pip" icon="true">**Créer** le répertoire du projet et l'ouvrir avec Powershell.</callout> <code powershell *.powershell> # Exemple : instalation de Flask dans le projet test2 # --------------------------------------------------------- # 1. Créer un environnement virtuel dans \test2 PS C:\Users\phili\Desktop\test2> python -m venv .venv # 2. Activer l'environnement PS C:\Users\phili\Desktop\test2> ./.venv/Scripts/activate # Résultat : (.venv) PS C:\Users\phili\Desktop\test2> # 3a. Sélectionner la version de python a exécuter dans le répertoire (.venv) PS C:\Users\phili\Desktop\test2> pyenv local 3.10.11 # 3b. Vérifier (.venv) PS C:\Users\phili\Desktop\test2> pyenv version # Résultat : 3.10.11 (set by C:\Users\phili\Desktop\test2\.python-version) # 4. Installer Flask (.venv) PS C:\Users\phili\Desktop\test2> pip install Flask #Résultat : Flask existe dans C:\Users\phili\Desktop\test2\.venv\Lib\site-packages </code> * **Position dans l'arborescence des répertoires** * **Globale** <callout type="info" icon="true">Si l'environnement virtuel est dans **//C:\Users\NomUtilisateur\.pyenv\pyenv-win\versions\3.x.x//**, alors les bibliothèques installées avec pip seront dans : * **//C:\Users\NomUtilisateur\.pyenv\pyenv-win\versions\3.x.x\Lib\site-packages\//** </callout> //Exemple// {{ :python:outils:cheminpyenv.png?nolink |}} * **Locale** === 4. Liste des commandes === <callout type="info" title="Préfixe" icon="true">Sous Windows, les commandes sont utilisées dans **powershell** et préfixée par **pyenv**.</callout> //Exemple// <code ps *.powershell> pyenv commands # pour lister les commandes </code> * **commands** : liste toutes les commandes pyenv disponibles \\ * duplicate \\ * **exec** : Exécute un exécutable en préparant d'abord PATH afin que le répertoire `bin' de la version Python sélectionnée soit au début \\ * export \\ * **global** : définit ou affiche la version globale de Python \\ * **help** : affiche l'aide pour une commande * **install** : installe une ou plusieurs versions de Python \\ * **local** : définit ou affiche la version locale de Python spécifique à l'application \\ * **rehash** : réorganise les cales pyenv (exécuter cette opération après avoir changé de version Python) \\ * **shell** : définit ou affiche la version de Python spécifique au shell \\ * **shims** : \\ * **uninstall** : désinstalle une ou plusieurs versions de Python \\ * **update** : met à jour la base de données de versions en cache \\ * **version-name** : affiche la version Python actuelle \\ * **version** : affiche la version Python actuelle et son origine \\ * **versions** : Liste toutes les versions Python disponibles pour pyenv \\ * **vname** : affiche la version Python actuelle \\ * **whence** : liste toutes les versions Python qui contiennent l'exécutable donné \\ * **which** : affiche le chemin complet vers un exécutable \\ \\ === 5. pyenv et VSCODE === * Si VSCode s'exécute dans un autre compte que celui de l'administrateur, voir [[outils:vscode:generalites|IDE VSCode - Généralités]] python/outils/pyenv.txt Dernière modification : 2025/02/20 20:01de phil