Outils pour utilisateurs

Outils du site


issue148:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue148:python [2019/09/09 07:25] d52frissue148:python [2019/09/17 15:38] (Version actuelle) lecastillan
Ligne 1: Ligne 1:
 **Last month, I talked about Python 3.8.0b2 and I suggested that if you wanted to try it, you should consider a virtual environment. I then realized that I hadn't really discussed virtual environments before. So, I'm going to now.** **Last month, I talked about Python 3.8.0b2 and I suggested that if you wanted to try it, you should consider a virtual environment. I then realized that I hadn't really discussed virtual environments before. So, I'm going to now.**
  
-Le mois dernier, j'ai parlé de Python 3.80b2 et j'ai suggéré que, si vous voulez l'essayer, vous pourriez envisager un environnement virtuel. J'ai ensuite réalisé que je n'avais pas vraiment présenté les environnements virtuel avant. Aussi, je vais le faire maintenant.+Le mois dernier, j'ai parlé de Python 3.8.0b2 et j'ai suggéré que, si vous vouliez l'essayer, vous pourriez envisager un environnement virtuel. J'ai ensuite réalisé que je n'avais jamais vraiment présenté les environnements virtuels. Aussi, je vais le faire maintenant.
  
 **What is a Python Virtual Environment? **What is a Python Virtual Environment?
Ligne 9: Ligne 9:
 Qu'est-ce qu'un environnement virtuel en Python ? Qu'est-ce qu'un environnement virtuel en Python ?
  
-En gros, il vous permet de gérer facilement des versions multiples de Python (et de pip), sans mélanger les paquets et les configurations que vous avez déjà. Pourquoi auriez-vous plusieurs configurations de Python ? Je sais que mon environnement est probablement quelque peu éloigné de vos besoins, mais j'ai plusieurs machines et, sur chacune, ma version « principale » est, soit 3.6, soit 3.7, suivant ce que je fais. Par exemple, j'ai une instance de Python 3.6 la programmation de l'apprentissage machine, un Python 3.7 pour le travail « normal », un pour les tests de la bêta de Python 3.8 et j'ai encore un version de Python 2.7 au càs où. Alors qu'il est facile de gérer une version de Python 2.x et une version de Python 3.x sur un seule machine, il arrive qu'il y ait des conflit entre versions de bibliothèques et que ça puisse entraîner l'arrêt de programmes.+En gros, il vous permet de gérer facilement des versions multiples de Python (et de pip), sans semer la pagaille dans les paquets et les configurations que vous avez déjà. Pourquoi auriez-vous plusieurs configurations de Python ? Je sais que mon environnement est probablement quelque peu éloigné de vos besoins, mais j'ai plusieurs machines et, sur chacune, ma version « principale » de Python est, soit la 3.6, soit la 3.7, selon ce que je fais. Par exemple, j'ai une instance de Python 3.6 pour la programmation de l'apprentissage machine, une de Python 3.7 pour le travail « normal », une pour les tests de la bêta de Python 3.8 et j'ai encore une version de Python 2.7 au cas où. Alors qu'il est facile de gérer une version de Python 2.x et une version de Python 3.x sur un seule machine, il arrive qu'il y ait des conflits entre versions de bibliothèques et que ça puisse entraîner l'arrêt des programmes.
  
 **What's the solution? **What's the solution?
Ligne 17: Ligne 17:
 Quelle est la solution ? Quelle est la solution ?
  
-J'ai trouvé un projet appelé pyenv qui fait plutôt bien tout ce dont vous avez besoin sans trop de peine. Vous pouvez le trouver sur https://github.com/pyenv/pyenv. J'trouvé un guide d'installation superbe sur : https://realpython.com/intro-to-pyenv/. C'est ce guide que j'ai utilisé pour installer pyenv sur mon portablej'essaierai de vous en extraire le meilleur pour que vous vous lanciez dans le temps le plus bref possible.+J'ai trouvé un projet appelé pyenv qui fait plutôt bien tout ce dont vous avez besoin sans trop de peine. Vous pouvez le trouver sur https://github.com/pyenv/pyenv. J'ai trouvé un magnifique guide d'installation sur : https://realpython.com/intro-to-pyenv/. C'est ce guide que j'ai utilisé pour installer pyenv sur mon portable et j'essaierai de vous en extraire le meilleur pour que vous puissiez vous lancer dans un temps record.
  
 **Getting Started **Getting Started
Ligne 25: Ligne 25:
 There are two ways to install pyenv. There is an easy way and a hard way. I'm going to discuss the easy way. The reason for this is that the easy way not only installs pyenv, but also installs some other pyenv tools that will be helpful – like pyenv-virtualenv, pyenv-update, and more. While you can manually get these installed, this way is so much easier.** There are two ways to install pyenv. There is an easy way and a hard way. I'm going to discuss the easy way. The reason for this is that the easy way not only installs pyenv, but also installs some other pyenv tools that will be helpful – like pyenv-virtualenv, pyenv-update, and more. While you can manually get these installed, this way is so much easier.**
  
-Démarrage+Mise en route
  
-Je limiterai mes instructions à celles pour un PC utilisant Ubuntu/Linux Mint/Debian ou d'autres distributions Linux similaires. Si vous êtes sur MAC, ou utilisez une aurtre distribution Liunx, vous trouverez beaucoup d'informations utiles sur les deux sites cités ci-dessus, et sur d'autres, avec une simple recherche sur le Web.+Je limiterai mes instructions à celles pour un PC utilisant Ubuntu/Linux Mint/Debian ou d'autres distributions Linux similaires. Si vous êtes sur MAC, ou utilisez une autre distribution Linux, vous trouverez beaucoup d'informations utiles sur les deux sites cités ci-dessus, et sur d'autres, avec une simple recherche sur le Web.
  
-Il y a deux façons d'installer pyenv, une facile, l'autre difficile. Je vais vous présenter la méthode facile. C'est pour la raison que cette manière facile installe non seulement pyenv, mais aussi d'autressoutils de pyenv qui seront utiles, comme pyenv-virtualenv, pyenv-update, et d'autres. Bien que vous puissiez les installer manuellement, c'est tellement plus facile de cette façon.+Il y a deux façons d'installer pyenv, une facile, l'autre difficile. Je vais vous présenter la méthode facile. C'est parce que cette méthode facile installe non seulement pyenv, mais aussi d'autres outils de pyenv qui seront utiles, comme pyenv-virtualenv, pyenv-update, et plus. Bien que vous puissiez les installer manuellement, c'est tellement plus facile de cette façon.
  
 **The first thing you need to do is install the dependencies. You probably have most of them, but run the install command below just to be safe. Open a terminal and enter... **The first thing you need to do is install the dependencies. You probably have most of them, but run the install command below just to be safe. Open a terminal and enter...
Ligne 43: Ligne 43:
 $ curl https://pyenv.run | bash** $ curl https://pyenv.run | bash**
  
-La première chose que vous avez besoin de faire est d'installer les dépendances. Vous avez probablement la plupart d'entre elles, mais lancez la commande d'installation ci-dessous juste pour vous en assurer. Ouvrez un terminal et saisissez :+La première chose que vous devez faire est d'installer les dépendances. Vous possédez probablement la plupart d'entre elles, mais lancez la commande d'installation ci-dessous juste pour vous en assurer. Ouvrez un terminal et saisissez :
    
 sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
Ligne 67: Ligne 67:
 Make sure that the first line defining the PYENV_ROOT points to the correct directory.** Make sure that the first line defining the PYENV_ROOT points to the correct directory.**
  
-Ceci lance l'installation de pyenv. Fermez votre terminal et rouvrez-le. Ceci charge tous les changements dans le fichier .bashrc. Ou, à la place, vous pouvez saisir :+Cela lance l'installation de pyenv. Fermez votre terminal et rouvrez-le. Tous les changements sont chargés dans le fichier .bashrc. Ou, à la place, vous pouvez saisir :
  
 $ source ~/.bashrc $ source ~/.bashrc
  
-Vous avez besoin, ensuite, de modifier le fichier .bashrc. Si vous utilisez une version différente, ce pourrait être bash_profile. Dans votre terminal, saisissez :+Vous avez besoin, ensuite, de modifier le fichier .bashrc. Si vous utilisez une version différente, ce pourrait être .bash_profile. Dans votre terminal, saisissez :
  
 $ gedit ~/.bashrc $ gedit ~/.bashrc
Ligne 91: Ligne 91:
 $ pyenv install --list** $ pyenv install --list**
  
-Sauvegardez votre fichier .bashrc et rechargez-le. Comme précédemment, ceci peut être réalisé, soit en fermant puis en rouvrant le terminal, soit en tapant simplement :+Sauvegardez votre fichier .bashrc et rechargez-le. Comme précédemment, cela peut être fait, soit en fermant puis en rouvrant le terminal, soit en tapant simplement :
  
 $ source ~/.bashrc $ source ~/.bashrc
  
-Ceci force le rechergement de .bashrc. Maintenant, juste pour terminer, lancez une mise à jour de pyenv.+Cela force le rechargement de .bashrc. Maintenant, juste pour terminer, lancez une mise à jour de pyenv.
  
 $ pyenv update $ pyenv update
Ligne 121: Ligne 121:
 * 3.7.4 (set by /home/greg/.python-version)** * 3.7.4 (set by /home/greg/.python-version)**
  
-Vous obtiendrez ainsi une liste de tous les paquets disponibles que vous pouvez installer. C'est une TRÉS longue liste, avec les versions Pythons actuelles au début. Vous verrez aussi les versions jython, ironpython, anaconda et anaconda3, activepython et d'autres. À ce moement-là, nous pouvons vérifier que le texte de version que nous devons utiliser est « 3.7.4 ». (Dans peu de temps, nous ajouterons aussi la dernière version disponible, la 3.8.0).+Vous obtiendrez ainsi une liste de tous les paquets disponibles que vous pouvez installer. C'est une TRÉS longue liste, avec les versions actuelles de Python au début. Vous verrez aussi les versions de jython, ironpython, anaconda et anaconda3, activepython et d'autres. Maintenant, nous pouvons vérifier que le numéro de version que nous devons utiliser est « 3.7.4 ». (Dans peu de temps, nous ajouterons aussi la dernière version disponible, la 3.8.0).
  
-Pour l'installer, taez :+Pour l'installer, tapez :
  
 $ pyenv install 3.7.4 $ pyenv install 3.7.4
  
-Ça prend environ cinq minutes sur mon vieux portable ; aussi, allez prendre un tasse de café ou de thé puis reprenez.+Ça prend environ cinq minutes sur mon vieux portable ; aussi, allez prendre une tasse de café ou de thépuis reprenez.
  
-une fois l'installation terminée, saisissez :+Une fois l'installation terminée, saisissez :
  
 $ pyenv versions $ pyenv versions
Ligne 149: Ligne 149:
 $ ls ~/pyenv/versions/** $ ls ~/pyenv/versions/**
  
-Plusieurs choses à noter ici. D'abord, vous verrez * 3.7.4 qui vous fera savoir quelle est la version installée comme version par défaut de python quand vous utilisez pyenv. Ensuite, il y a une version « système »,  qui votre version normale avant que vous démarriez le processus. Vous pouvez toujours l'utiliser sans utiliser pyenv. Pour vous le prouver, tapez dans votre terminal :+Plusieurs choses à noter ici. D'abord, vous verrez * 3.7.4qui vous indiquera la version de Python installée comme version par défaut quand vous utilisez pyenv. Ensuite, il y a une version « système »,  qui est votre version normale avant que vous ne démarriez le processus. Vous pouvez toujours l'utiliser sans utiliser pyenv. Pour vous le prouver, tapez dans votre terminal :
  
 $ python -V $ python -V
Ligne 155: Ligne 155:
 Vous devriez voir la version que vous utilisez normalement. Vous devriez voir la version que vous utilisez normalement.
  
-Actuellement, vous pouvez toujours voir les versions que pyenv a installé, en faisant ceci :+Bon. Vous pouvez toujours voir les versions que pyenv a installées, en faisant ceci :
  
 $ ls ~/pyenv/versions/ $ ls ~/pyenv/versions/
Ligne 175: Ligne 175:
 $ pyenv local 3.7.4** $ pyenv local 3.7.4**
  
-C'est là que sont situées toutes les versions de Python dans pyenv. Si vous voulez en effacer une, tapez simplement :+C'est là que sont situées toutes les versions de python dans pyenv. Si vous voulez en supprimer une, il suffit de taper :
  
 rm -rf ~/pyenv/versions/{numéro de version} rm -rf ~/pyenv/versions/{numéro de version}
  
-dans une fenêtre de terminal. Par exemple, si je voulais effacer la version 3.7.4, je ferai :+dans une fenêtre de terminal. Par exemple, si je voulais supprimer la version 3.7.4, je ferai :
  
 $ rm -rf ~/pyenv/versions/3.7.4 $ rm -rf ~/pyenv/versions/3.7.4
  
-Ouvous pouvez le faire avec une commande de pyenv :+Ou vous pouvez le faire avec une commande de pyenv :
  
 $ pyenv uninstall 3.7.4 $ pyenv uninstall 3.7.4
  
-Mains ne le faites pas encore. Disons à pyenv que nous voulons utiliser la version 3.7.4 que vous venons juste d'installer :+Mais ne le faites pas encore. Disons à pyenv que nous voulons utiliser la version 3.7.4 que nous venons d'installer :
  
 $ pyenv local 3.7.4 $ pyenv local 3.7.4
Ligne 205: Ligne 205:
 $ pyenv local system $ pyenv local system
 $ python -V** $ python -V**
 +
 +Demandez maintenant à python la version qui est installée...
 +
 +$ python -V
 +
 +Vous devriez voir quelque chose comme ceci...
 +
 +Python 3.7.4
 +
 +Sinon, essayez de faire « exec $SHELL », puis réessayez.
 +
 +Histoire de bien comprendre, revenez maintenant à la version du système.
 +
 +$ pyenv local system
 +$ python -V
  
 **You should see your normal Python instance restored. Now, let's install the latest version of 3.8.0 in pyenv (which, at this writing, is 3.8.0b2). **You should see your normal Python instance restored. Now, let's install the latest version of 3.8.0 in pyenv (which, at this writing, is 3.8.0b2).
Ligne 220: Ligne 235:
  
 $ pyenv which pip** $ pyenv which pip**
 +
 +Vous devriez voir que votre instance normale de Python a été rétablie. Maintenant, installons dans pyenv la dernière version de la 3.8.0 (qui est la 3.8.0b2, à l'heure où j'écris).
 +
 +$ pyenv install 3.8-dev
 +
 +Après environ 5 minutes, tout est installé. Pour le vérifier, faites ceci :
 +
 +$ pyenv versions
 +$ pyenv local 3.8-dev
 +$ python -V
 +
 +Enfin, assurons-nous que nous utilisons le bon pip - ainsi, nous pourrons installer quelques bibliothèques...
 +
 +$ pyenv which pip
  
 **You should see something like: **You should see something like:
Ligne 240: Ligne 269:
 pip        19.0.3 pip        19.0.3
 setuptools 40.8.0** setuptools 40.8.0**
 +
 +Vous devriez voir quelque chose comme :
 +
 +/home/greg/pyenv/versions/3.8-dev/bin/pip
 +
 +et pour mieux nous le prouver...
 +
 +$ pip --version
 +pip 19.0.3 from /home/greg/pyenv/versions/3.8-dev/lib/python3.8/site-packages/pip (python 3.8)
 +
 +Ainsi, nous savons maintenant que notre version de Python est la 3.8.0b2 et que le pip que nous utilisons vient aussi de Python 3.8. Comme d'habitude, listons pip pour voir quels paquets de bibliothèques sont installés.
 +
 +$ pip list
 +
 +et vous devriez voir...
 +
 +Package     Version
 +---------- -------
 +pip        19.0.3
 +setuptools 40.8.0
  
 **You might also get a notice to upgrade pip. Go ahead and do that if you want, then we'll set up a virtual environment. **You might also get a notice to upgrade pip. Go ahead and do that if you want, then we'll set up a virtual environment.
Ligne 254: Ligne 303:
 Requirement already satisfied: setuptools in /home/greg/pyenv/versions/3.8-dev/envs/38beta/lib/python3.8/site-packages (40.8.0) Requirement already satisfied: setuptools in /home/greg/pyenv/versions/3.8-dev/envs/38beta/lib/python3.8/site-packages (40.8.0)
 Requirement already satisfied: pip in /home/greg/pyenv/versions/3.8-dev/envs/38beta/lib/python3.8/site-packages (19.0.3)** Requirement already satisfied: pip in /home/greg/pyenv/versions/3.8-dev/envs/38beta/lib/python3.8/site-packages (19.0.3)**
 +
 +Vous pourriez recevoir aussi un message vous demandant de mettre pip à jour. Allez-y ; faîtes-le si vous voulez et ensuite nous paramétrerons un environnement virtuel.
 +
 +Notez que nous utilisons « pip » et non « pip3 ». Que vous utilisiez l'un ou l'autre dans une installation de pyenv n'a pas vraiment d'importance. Ils sont tous deux équivalents. (Il y a un problème pour certains quand le mauvais pip est utilisé lorsque vous passez par la version du système. Par sécurité, quand vous utilisez le système, vérifiez par un « pip --version » une fois être revenu à la version du système).
 +
 +Maintenant, nous allons traiter l'environnement virtuel. Comme je l'ai dit plus tôt, c'est comme ça que nous pouvons installer diverses bibliothèques spéciales sans que cela pose des problèmes à l'environnement « normal ».  Comme nous avons choisi la méthode d'installation facile, le module additionnel virtualenv est déjà installé. Nous créerons un environnement virtuel pour notre installation de 3.8-dev. La syntaxe de base est « pyenv virtualenv <version de python> <version de l'environnement> <nom de l'environnement>. Aussi, pour notre exemple, nous ferons...
 +
 +$ pyenv virtualenv 3.8-dev 38beta
 +
 +et la réponse devrait être quelque chose comme ça :
 +
 +Looking in links: /tmp/tmpby1g9af4
 +Requirement already satisfied: setuptools in /home/greg/pyenv/versions/3.8-dev/envs/38beta/lib/python3.8/site-packages (40.8.0)
 +Requirement already satisfied: pip in /home/greg/pyenv/versions/3.8-dev/envs/38beta/lib/python3.8/site-packages (19.0.3)
  
 **Now we want to activate our virtual environment **Now we want to activate our virtual environment
Ligne 265: Ligne 328:
  
 The first thing you should notice is the (38beta) that appears before your prompt. This lets you know that you are now in the virtual environment 38beta. Next, notice the warning notice above. This says that the prompt change will be going away in some future version. Many users are trying to get the maintainers of pyenv to change their minds, since this can tell you what, if any, virtual environment you are using just at a glance.** The first thing you should notice is the (38beta) that appears before your prompt. This lets you know that you are now in the virtual environment 38beta. Next, notice the warning notice above. This says that the prompt change will be going away in some future version. Many users are trying to get the maintainers of pyenv to change their minds, since this can tell you what, if any, virtual environment you are using just at a glance.**
 +
 +Maintenant nous voulons activer notre environnement virtuel :
 +
 +$ pyenv activate 38beta
 +
 +Vous devriez obtenir :
 +
 +pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
 +(38beta) greg@greg-Latitude-E5500:~$
 +
 +La première chose que vous devez noter, c'est le (38beta) qui apparaît avant votre invite. Cela vous permet de savoir que vous êtes maintenant dans l'environnement virtuel 38beta. Ensuite, notez l'avertissement au-dessus. Il indique que la modification de l'invite sera retirée dans une version future. Beaucoup d'utilisateurs essaient de faire changer les idées des mainteneurs de pyenv, car cela peut vous dire d'un eseul coup d'œil, si c'est le cas, quel environnement virtuel est utilisé.
  
 **Now, verify you are using the correct python version… **Now, verify you are using the correct python version…
Ligne 281: Ligne 355:
  
 This should reset the prompt back to its "normal" environment.** This should reset the prompt back to its "normal" environment.**
 +
 +Maintenant vérifiez que vous utilisez la bonne version de python...
 +
 +$ python -V
 +Python 3.8.0b2+
 +
 +Et vérifiez que la version de pip pointe sur la bonne installation de python...
 +
 +(38beta) greg@greg-Latitude-E5500:~$ pip --version
 +pip 19.1.1 from /home/greg/pyenv/versions/3.8-dev/envs/38beta/lib/python3.8/site-packages/pip (python 3.8)
 +
 +Pour sortir de l'environnement virtuel, utilisez juste...
 +
 +$ pyenv deactivate
 +
 +Cela remettra l'invite dans son environnement « normal ».
  
 **At this point, you should now be able to move around using different Python versions pretty easily, activate and deactivate your virtual environments, and install new versions of python. **At this point, you should now be able to move around using different Python versions pretty easily, activate and deactivate your virtual environments, and install new versions of python.
Ligne 296: Ligne 386:
 3.8.0 final: Monday, 2019-10-21** 3.8.0 final: Monday, 2019-10-21**
  
-**If you want to keep up with the latest beta and release candidates within your pyenv world, when a new version is released, give it a day or two before you try to install the new one. Get a list from pip of the library packages you have installed in your beta setup (pip list > pippkgs38beta.txt), and use this raw file to create a requirements.txt file that you can use to automate the re-installation process, and finally remove the old beta or release candidate (rm -rf ~/pyenv/versions/3.8-dev), then reinstall the new version. Just for your information, Python 3.9 development is already underway. The first alpha release is scheduled for 2019-09-13, the first beta is scheduled for 2020-01-20 and final release is scheduled for 2020-06-08. **+À ce stade, vous devriez être capable de passer d'une version de Python à une autre assez facilement, d'activer et désactiver vos environnements virtuels et d'installer de nouvelles versions de Python. 
 + 
 +Je dirais que, quoique vous fassiez, n'utilisez pas python 3.8.0 dans un développement de production important avant que la publication officielle ne sorte en octobre ou novembre prochains. Le version finale est planifiée actuellement pour le 21 octobre 2019. C'est le calendrier officiel  pour le moment... 
 + 
 +3.8.0 beta 3 : lundi 29-07-2019 
 + 
 +3.8.0 beta 4 : lundi 26-08-2019 
 + 
 +3.8.0 candidate 1 : lundi 30-09-2019 
 + 
 +3.8.0 candidate 2 : lundi 07-10-2019 (si nécessaire) 
 + 
 +3.8.0 final : lundi 21-10-2019 
 + 
 + 
 +**If you want to keep up with the latest beta and release candidates within your pyenv world, when a new version is released, give it a day or two before you try to nstall the new one. Get a list from pip of the library packages you have installed in your beta setup (pip list > pippkgs38beta.txt), and use this raw file to create a requirements.txt file that you can use to automate the re-installation process, and finally remove the old beta or release candidate (rm -rf ~/pyenv/versions/3.8-dev), then reinstall the new version. Just for your information, Python 3.9 development is already underway. The first alpha release is scheduled for 2019-09-13,  the first beta is scheduled for 2020-01-20 and final release is scheduled for 2020-06-08. ** 
 + 
 +Si vous voulez vous tenir au courant des dernières RC (release candidiate - pré-version) et bêta du monde pyenv, quand une nouvelle version sort, donnez-vous un jour ou deux avant d'essayer d'en installer une nouvelle. Faîtes une liste issue de pip des paquets de bibliothèques que vous avez installés dans votre paramétrage de la bêta (pip list > pippkgs38beta.txt), utilisez ce fichier texte pour créer un fichier requirements.txt que vous pouvez utiliserez pour automatiser le processus de ré-installation et, enfin, enlever la vieille bêta ou RC (rm -rf ~/pyenv/versions/3.8-dev) puis réinstaller la nouvelle version. Juste pour votre information, le développement de Python 3.9 est déjà en cours. La première publication alpha est planifiée pour le 13-09-2019, la première bêta pour le 20-01-2020 et la publication finale pour le 08-06-2020.
  
issue148/python.1568006739.txt.gz · Dernière modification : 2019/09/09 07:25 de d52fr