{"id":5877,"date":"2024-09-02T02:14:11","date_gmt":"2024-09-02T02:14:11","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/creer-et-utiliser-venv-sur-unix-avec-python\/"},"modified":"2024-09-02T02:14:15","modified_gmt":"2024-09-02T02:14:15","slug":"creer-et-utiliser-venv-sur-unix-avec-python","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/creer-et-utiliser-venv-sur-unix-avec-python\/","title":{"rendered":"11.4 Cr\u00e9er et Utiliser venv sur Unix avec Python"},"content":{"rendered":"\n<p><strong>Les environnements virtuels (venv) en Python<\/strong> sont essentiels pour isoler les d\u00e9pendances de projet, \u00e9viter les conflits de paquets et maintenir des environnements de d\u00e9veloppement propres. Apprendre \u00e0 cr\u00e9er et utiliser <strong>venv sur Unix avec Python<\/strong> peut grandement optimiser votre flux de travail de d\u00e9veloppement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction \u00e0 <strong>venv sur Unix<\/strong><\/h2>\n\n\n\n<div id=\"videoContainer\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;\">\n  <iframe src=\"https:\/\/player.vimeo.com\/video\/583425860?dnt=1&#038;fullscreen=0&#038;pip=0\" loading=\"lazy\" loading=\"lazy\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen id=\"vimeoPlayer\"><\/iframe>\n  \n  <!-- Popup Desktop -->\n  <div id=\"popupContainer\" class=\"desktop-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 400px; padding: 20px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <h2 style=\"color: #333; font-size: 1.5em; margin: 10px 0;\" id=\"profitez-de-loffre-spciale-\">Profitez de l\u2019offre sp\u00e9ciale !<\/h2>\n    <p style=\"color: #e74c3c; font-size: 1.2em; margin: 10px 0;\">Obtenez notre cours pour seulement <strong id=\"price\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: block; padding: 10px 20px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 1em; margin: 20px auto;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 10px 20px; font-size: 1em;\">Fermer<\/button>\n  <\/div>\n\n  <!-- Popup Mobile -->\n  <div id=\"popupContainerMobile\" class=\"mobile-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 300px; padding: 15px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <p style=\"color: #e74c3c; font-size: 1em; margin: 5px 0;\">Cours sp\u00e9cial \u00e0 <strong id=\"priceMobile\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: inline-block; padding: 8px 15px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 0.9em;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 5px 10px; font-size: 0.9em;\">Fermer<\/button>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var iframe = document.getElementById('vimeoPlayer');\n    var player = new Vimeo.Player(iframe);\n    var isPopupDisplayed = false;\n\n    player.on('play', function() {\n        if (!isPopupDisplayed) {\n            player.on('timeupdate', function(data) {\n                if (data.seconds >= 120 && !isPopupDisplayed) { \/\/ 120 seconds = 2 minutes\n                    \/\/ Pause the video and display the popup\n                    player.pause().then(function() {\n                        if (window.innerWidth > 768) {\n                            document.querySelector('.desktop-popup').style.display = 'block';\n                        } else {\n                            document.querySelector('.mobile-popup').style.display = 'block';\n                        }\n                        fetchPriceAndUpdatePopup();\n                        isPopupDisplayed = true;\n                    });\n                }\n            });\n        }\n    });\n\n    function fetchPriceAndUpdatePopup() {\n        fetch('https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144')\n            .then(response => response.text())\n            .then(html => {\n                var parser = new DOMParser();\n                var fetchedDoc = parser.parseFromString(html, 'text\/html');\n                var priceElement = fetchedDoc.querySelector('.ammount .fw-500');\n                var originalPriceElement = fetchedDoc.querySelector('.ammount del');\n                var price = priceElement ? priceElement.textContent.trim() : '29.5\u20ac';\n                var originalPrice = originalPriceElement ? originalPriceElement.textContent.trim() : '59\u20ac';\n\n                document.getElementById('price').textContent = price;\n                document.getElementById('priceMobile').textContent = price;\n                document.querySelector('.desktop-popup del').textContent = originalPrice;\n                document.querySelector('.mobile-popup del').textContent = originalPrice;\n            })\n            .catch(error => console.error('Error fetching the price:', error));\n    }\n\n    function closePopup() {\n        document.querySelector('.desktop-popup').style.display = 'none';\n        document.querySelector('.mobile-popup').style.display = 'none';\n        player.play(); \/\/ Allows resuming the video only after closing the popup\n    }\n});\n<\/script>\n\n\n\n<p>Un environnement virtuel, ou venv, permet de cr\u00e9er un espace isol\u00e9 o\u00f9 vous pouvez installer des paquets sp\u00e9cifiques sans affecter d&rsquo;autres projets. Cela est particuli\u00e8rement utile pour travailler sur plusieurs projets avec des d\u00e9pendances diff\u00e9rentes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9er un Environnement Virtuel (venv)<\/h3>\n\n\n\n<p>Pour cr\u00e9er un environnement virtuel, utilisez le module venv fourni par Python. Voici comment proc\u00e9der :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-shell\"><code>python3 -m venv myenv<\/code><\/pre>\n\n\n\n<p>Cette commande cr\u00e9e un dossier nomm\u00e9 <code>myenv<\/code> contenant les fichiers n\u00e9cessaires pour l&rsquo;environnement virtuel. Assurez-vous d&rsquo;avoir Python 3 install\u00e9 sur votre machine.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Activer l&rsquo;Environnement Virtuel<\/h3>\n\n\n\n<p>Pour utiliser l&rsquo;environnement virtuel que vous avez cr\u00e9\u00e9, vous devez l&rsquo;activer. Sur Unix ou MacOS, utilisez la commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-shell\"><code>source myenv\/bin\/activate<\/code><\/pre>\n\n\n\n<p>Vous verrez alors le nom de votre environnement virtuel appara\u00eetre dans le terminal, indiquant que l&rsquo;environnement est activ\u00e9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installer des Paquets dans un venv<\/h3>\n\n\n\n<p>Lorsque l&rsquo;environnement virtuel est activ\u00e9, vous pouvez installer des paquets sp\u00e9cifiques en utilisant pip. Par exemple, pour installer Requests :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-shell\"><code>pip install requests<\/code><\/pre>\n\n\n\n<p>Les paquets install\u00e9s seront isol\u00e9s dans cet environnement et n&rsquo;affecteront pas le syst\u00e8me global ni d&rsquo;autres environnements virtuels.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">D\u00e9sactiver l&rsquo;Environnement Virtuel<\/h3>\n\n\n\n<p>Pour quitter l&rsquo;environnement virtuel, utilisez simplement la commande :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-shell\"><code>deactivate<\/code><\/pre>\n\n\n\n<p>Cette commande vous ram\u00e8nera \u00e0 votre environnement de shell par d\u00e9faut.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">G\u00e9rer les D\u00e9pendances avec un Fichier requirements.txt<\/h3>\n\n\n\n<p>Pour partager un projet avec ses d\u00e9pendances, vous pouvez cr\u00e9er un fichier <code>requirements.txt<\/code> listant tous les paquets install\u00e9s. Utilisez la commande suivante pour g\u00e9n\u00e9rer ce fichier :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-shell\"><code>pip freeze > requirements.txt<\/code><\/pre>\n\n\n\n<p>Pour installer les d\u00e9pendances list\u00e9es dans ce fichier dans un nouvel environnement virtuel, utilisez :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-shell\"><code>pip install -r requirements.txt<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exemples Avanc\u00e9s d&rsquo;Usage des Environnements Virtuels<\/h3>\n\n\n\n<p>Voici quelques exemples avanc\u00e9s pour mieux comprendre comment les environnements virtuels peuvent \u00eatre utilis\u00e9s dans des sc\u00e9narios r\u00e9els.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Utiliser venv pour Tester Diff\u00e9rentes Versions de Paquets<\/h4>\n\n\n\n<p>Vous pouvez cr\u00e9er plusieurs environnements virtuels pour tester votre application avec diff\u00e9rentes versions de paquets sans les conflits.<\/p>\n\n\n\n<pre class=\"wp-block-code lang-shell\"><code># Cr\u00e9er deux environnements\npython3 -m venv env1\npython3 -m venv env2\n\n# Activer env1 et installer une version sp\u00e9cifique de requests\nsource env1\/bin\/activate\npip install requests==2.24.0\ndeactivate\n\n# Activer env2 et installer une autre version de requests\nsource env2\/bin\/activate\npip install requests==2.25.1\ndeactivate\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Isoler les Environnements pour les Projets de Test et de Production<\/h4>\n\n\n\n<p>Pour isoler les environnements de d\u00e9veloppement et de production, cr\u00e9ez des environnements distincts :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-shell\"><code># Environnement de d\u00e9veloppement\npython3 -m venv dev_env\nsource dev_env\/bin\/activate\npip install -r dev_requirements.txt\ndeactivate\n\n# Environnement de production\npython3 -m venv prod_env\nsource prod_env\/bin\/activate\npip install -r prod_requirements.txt\ndeactivate\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Utilisation de venv avec des T\u00e2ches Automatis\u00e9es<\/h4>\n\n\n\n<p>Dans des projets plus complexes, vous pouvez automatiser l&rsquo;activation de venv avec des scripts de gestion de construction comme Makefile ou npm scripts pour node.js.<\/p>\n\n\n\n<pre class=\"wp-block-code lang-makefile\"><code># Makefile example\ncreate_venv:\n    python3 -m venv myenv\n\ninstall_requirements: create_venv\n    source myenv\/bin\/activate && pip install -r requirements.txt\n\nrun: install_requirements\n    source myenv\/bin\/activate && python main.py\n<\/code><\/pre>\n\n\n\n<p>En poursuivant votre exploration de l&rsquo;utilisation des environnements virtuels en Python, vous pouvez \u00e9galement consulter des ressources externes pour approfondir votre compr\u00e9hension. Par exemple, le <a href=\"https:\/\/realpython.com\/\" target=\"_blank\" rel=\"noopener\">Real Python<\/a> propose des articles d\u00e9taill\u00e9s sur les environnements virtuels et la gestion des d\u00e9pendances, et le <a href=\"https:\/\/docs.python.org\/3\/library\/venv.html\" target=\"_blank\" rel=\"noopener\">site officiel de la documentation Python<\/a> offre une couverture exhaustive des fonctionnalit\u00e9s de venv.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Utiliser <strong>venv sur Unix avec Python<\/strong> est une technique puissante pour isoler les d\u00e9pendances de projet et maintenir un environnement de d\u00e9veloppement propre et reproductible. Que vous testiez diff\u00e9rentes versions de paquets ou s\u00e9pariez vos environnements de d\u00e9veloppement et de production, venv peut grandement am\u00e9liorer votre flux de travail. Continuez \u00e0 explorer les environnements virtuels et d&rsquo;autres outils Python pour optimiser davantage vos projets de d\u00e9veloppement. Pour plus de tutoriels et de ressources sur les environnements Python, visitez notre <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\">page de formation Python<\/a>.<\/p>\n\n\n\n<a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/wikiform.fr\/codespace\/wp-content\/uploads\/2024\/07\/learnify-formation-PYTHON-offre-50.gif\" loading=\"lazy\" alt=\"Learnify Formation Python Offre 50%\" title=\"\"><\/a>\n\n\n<!-- Mot-cl\u00e9 principal: venv Unix Python -->\n<!-- Liens internes -->\n<p>Pour ceux qui d\u00e9couvrent Python, il est judicieux de commencer par des bases solides. Avant de plonger dans les environnements virtuels, vous pouvez apprendre <a href=\"https:\/\/wikiform.fr\/codespace\/premier-programme-python-hello-world\" target=\"_blank\" rel=\"noopener\">comment cr\u00e9er votre premier programme en Python<\/a>. Pour installer Python, suivez nos guides <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-mac-2024-guide-complet\" target=\"_blank\" rel=\"noopener\">pour Mac<\/a> et <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-windows-facilement\" target=\"_blank\" rel=\"noopener\">pour Windows<\/a>.<\/p>\n\n<p>Une fois vos environnements en place, il est essentiel de savoir <a href=\"https:\/\/wikiform.fr\/codespace\/gestion-des-paquets-python-avec-pip-tutoriel\" target=\"_blank\" rel=\"noopener\">g\u00e9rer les paquets Python avec pip<\/a> et de bien comprendre <a href=\"https:\/\/wikiform.fr\/codespace\/manipuler-break-et-continue-en-python\" target=\"_blank\" rel=\"noopener\">l&rsquo;utilisation des structures de contr\u00f4le<\/a> pour des scripts plus complexes. Explorez aussi l&rsquo;int\u00e9gration des environnements virtuels dans <a href=\"https:\/\/wikiform.fr\/codespace\/creer-et-gerer-des-packages-en-python\" target=\"_blank\" rel=\"noopener\">vos propres packages<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Les environnements virtuels (venv) en Python sont essentiels pour isoler les d\u00e9pendances de projet, \u00e9viter les conflits de paquets et maintenir des environnements de d\u00e9veloppement&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2910,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5877","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-tutoriels"],"acf":[],"_titre_de_la_formation":null,"_description_":null,"_objectifs_pedagogiques":null,"_programme_":null,"_url_de_limage":null,"_materiel_necessaire":null,"_modalites_devaluation_des_acquis":null,"_moyens_pedagogiques_et_techniques":null,"_accessibilite_":null,"_formateur_":null,"menu_order":0,"_links":{"self":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/comments?post=5877"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5877\/revisions"}],"predecessor-version":[{"id":5878,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5877\/revisions\/5878"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2910"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}