


Gestion des dépendances et des environnements virtuels dans Python
L'utilisation d'un environnement virtuel peut résoudre les problèmes de conflit de dépendance dans les projets Python. Étant donné que l'installation de packages directement dans l'environnement système peut facilement conduire à la dépendance et aux combats entre différents projets, tels que les Django 3.2 et 4.2, sont incompatibles, et la mise à niveau de la bibliothèque peut entraîner des erreurs dans l'ancien code. Les pratiques courantes pour la création d'environnements virtuels sont: 1. Utilisez le module VENV pour créer un environnement, tel que Python -M Venv .Venv; 2. Activer l'environnement, utiliser la source .venv / bin / activer pour macOS / Linux et utiliser .venv \ scripts \ activer pour Windows. Les méthodes de gestion des dépendances incluent: 1. Utilisez PIP Freeze> exigences.txt pour enregistrer les dépendances et reproduire PIP Install -r exigences.txt; 2. Évitez d'ajouter des outils de débogage aux dépendances formelles et utilisez la liste PIP - Explicite pour générer une liste propre; 3. Utilisez PipFile ou Poésie pour des projets complexes. Remarques: 1. Le répertoire de l'environnement virtuel doit être ajouté à .gitignore et ne sera pas soumis au référentiel GIT; 2. Le document indique la différence de version Python; 3. Utilisez régulièrement PIP List - Outdated pour mettre à jour les dépendances; 4. Vous pouvez supprimer et recommencer lorsque l'environnement est chaotique. Il est recommandé de développer l'habitude d'utiliser des environnements virtuels et une gestion standardisée des dépendances pour éviter de se précipiter dans les pièges au stade ultérieur.
Dans le développement de projets Python, la gestion des dépendances et les environnements virtuels sont presque des opérations standard. Beaucoup de gens peuvent ne pas s'en soucier lorsqu'ils ont commencé à écrire du code. Ils n'ont pas constaté que le problème se pose lorsqu'ils ont rencontré différents projets qui nécessitent différentes versions de bibliothèques ou même différentes versions de Python. Ce n'est qu'alors que vous réalisez: il est temps de prendre au sérieux la dépendance et l'environnement virtuel.

Pourquoi avez-vous besoin d'utiliser un environnement virtuel?
Si vous installez divers packages directement dans l'environnement système, il est facile de lutter contre les dépendances entre différents projets sur une longue période. Par exemple, Project A utilise Django 3.2, Project B utilise Django 4.2. Que dois-je faire si certaines de ces deux versions sont incompatibles? Ou après avoir mis à niveau une bibliothèque, le code que vous pouvez exécuter avant de signaler soudainement une erreur.

La solution consiste à utiliser un environnement virtuel . Il équivaut à créer un petit espace indépendant pour chaque projet. Les packages sont installés et les versions installées n'affecteront pas d'autres projets.
Pratiques courantes:

- Chaque projet correspond à un environnement virtuel
- Créer un environnement à l'aide de
venv
ouvirtualenv
- Ne mettez pas tout dans l'environnement mondial
Comment créer et gérer des environnements virtuels?
Le module venv
de Python est la méthode la plus élémentaire. Par exemple, si vous souhaitez créer un environnement virtuel appelé .venv
dans le répertoire du projet, vous pouvez le faire comme ceci:
Python -M Venv .venv
Puis activez-le, sur macOS / Linux est:
source .venv / bin / activer
Windows est:
.venv \ scripts \ activer
Après l'activation, vous voyez qu'il y aura des supports supplémentaires devant la ligne de commande, indiquant que les packages que vous chargez maintenant seront chargés dans cet environnement virtuel.
Conseils: Si vous utilisez des IDE tels que PyCharm et VS Code, ils vous aideront généralement à créer et à activer l'environnement virtuel pour vous sauver des opérations manuelles.
Comment gérer les dépendances?
Lorsque vous avez chargé beaucoup de packages dans un projet, comment pouvez-vous les enregistrer et faciliter les autres pour les reproduire? La réponse est requirements.txt
.
Commandes couramment utilisées:
-
pip freeze > requirements.txt
: Enregistrez tous les packages et versions dans l'environnement actuel -
pip install -r requirements.txt
: réinstaller les dépendances en fonction de ce fichier
Mais une chose à noter: n'utilisez pas pip freeze
pour exporter les dépendances dans l'environnement de production . Parce que parfois, vous porterez temporairement des outils de débogage, ce qui ne devrait pas apparaître dans la dépendance officielle. Le moyen le plus recommandé est d'utiliser pip install
pour énumérer manuellement les packages dont vous avez vraiment besoin, puis d'utiliser pip list --explicit
pour générer une liste propre.
De plus, certains projets ont commencé à utiliser Pipfile
et poetry
pour gérer les dépendances, qui est un gameplay avancé et convient aux projets complexes. Si vous écrivez simplement un petit script, requirements.txt
sont les plus faciles et les plus pratiques.
Malentendus et suggestions courantes
Ne soumettez pas l'environnement virtuel au référentiel GIT Le répertoire de l'environnement virtuel (tel que
.venv
) doit être ajouté.gitignore
. Une fois que d'autres ont obtenu votre code, ils peuvent simplement créer un environnement par eux-mêmes. Il n'est pas nécessaire d'apporter un tas de fichiers binaires.Notez les différences dans les versions Python Si vous utilisez Python 3.8 et qu'il n'y a que 3,9 sur les machines d'autres personnes, certaines bibliothèques peuvent avoir des problèmes. Vous pouvez ajouter un
runtime.txt
au projet ou indiquer la version recommandée dans le document.Mettre à jour régulièrement les dépendances Certains packages qui ne sont pas mis à jour depuis longtemps peuvent avoir des vulnérabilités de sécurité. Vous pouvez utiliser
pip list --outdated
à voir s'il existe des packages qui peuvent être mis à niveau.N'ayez pas peur de le supprimer et de le refaire L'environnement virtuel est-il cassé ou gâché? Supprimez simplement
.venv
Venuez-le et recréez-le sans aucune inquiétude.
Fondamentalement, c'est tout. L'environnement virtuel et la gestion des dépendances ne semblent pas être un problème, mais une fois ignorés, la possibilité de pénétrer dans un piège à l'étape ultérieure sera beaucoup plus élevée. Il n'est en fait pas gênant à utiliser, la clé est de développer des habitudes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Cet article a sélectionné plusieurs sites Web de projet "finis" Python et des portails de ressources d'apprentissage "Blockbuster" de haut niveau pour vous. Que vous recherchiez l'inspiration de développement, l'observation et l'apprentissage du code source au niveau de la maîtrise ou que vous amélioriez systématiquement vos capacités pratiques, ces plateformes ne sont pas manquées et peuvent vous aider à devenir un maître Python rapidement.

Utilisez Sub-Process.run () pour exécuter en toute sécurité les commandes de shell et la sortie de capture. Il est recommandé de transmettre des paramètres dans les listes pour éviter les risques d'injection; 2. Lorsque les caractéristiques du shell sont nécessaires, vous pouvez définir Shell = True, mais méfiez-vous de l'injection de commande; 3. Utilisez un sous-processus.popen pour réaliser le traitement de sortie en temps réel; 4. SET CHECK = TRUE pour lancer des exceptions lorsque la commande échoue; 5. Vous pouvez appeler directement des chaînes pour obtenir la sortie dans un scénario simple; Vous devez donner la priorité à Sub-Process.run () dans la vie quotidienne pour éviter d'utiliser OS.System () ou les modules obsolètes. Les méthodes ci-dessus remplacent l'utilisation du noyau de l'exécution des commandes shell dans Python.

Utilisez le plot conjoint de Seaborn pour visualiser rapidement la relation et la distribution entre deux variables; 2. Le tracé de diffusion de base est implémenté par sn.jointplot (data = pointes, x = "total_bill", y = "Tip", kind = "dispers"), le centre est un tracé de dispersion et l'histogramme est affiché sur les côtés supérieur et inférieur et droit; 3. Ajouter des lignes de régression et des informations de densité à un kind = "reg" et combiner marginal_kws pour définir le style de tracé de bord; 4. Lorsque le volume de données est important, il est recommandé d'utiliser "Hex"

Utilisez httpx.asyncclient pour initier efficacement les demandes HTTP asynchrones. 1. 2. Combiner asyncio.gather à se combiner avec Asyncio.gather peut considérablement améliorer les performances, et le temps total est égal à la demande la plus lente; 3. Prise en charge des en-têtes personnalisés, des paramètres d'authentification, de base_url et de délai d'expiration; 4. Peut envoyer des demandes de poste et transporter des données JSON; 5. Faites attention pour éviter de mélanger le code asynchrone synchrone. Le support proxy doit prêter attention à la compatibilité back-end, ce qui convient aux robots ou à l'agrégation API et à d'autres scénarios.

Les listes de chaînes peuvent être fusionnées avec la méthode join (), telles que '' .join (mots) pour obtenir "HelloworldFrompython"; 2. Les listes de nombres doivent être converties en chaînes avec MAP (STR, nombres) ou [STR (x) Forxinnumbers] avant de rejoindre; 3. Toute liste de types peut être directement convertie en chaînes avec des supports et des devis, adaptées au débogage; 4. Les formats personnalisés peuvent être implémentés par des expressions de générateur combinées avec join (), telles que '|' .join (f "[{item}]" ForIteminitems)

PythonCanBeoptimizedFormemory-Boundoperations AdreductoverHeadHroughGenerators, EfficientDatastructures et ManagingObjectliFetimes.first, useGeneratorsInSteadofListStoproceSlargedataseSeItematatime, EvitingLoadingEnteryToMeToMeMory.

Installez PYODBC: utilisez la commande PiPInstallpyodbc pour installer la bibliothèque; 2. Connectez SQLServer: utilisez la chaîne de connexion contenant le pilote, le serveur, la base de données, l'UID / PWD ou TrustEd_Connection via la méthode pyoDBC.Connect () et prendre en charge l'authentification SQL ou l'authentification Windows respectivement; 3. Vérifiez le pilote installé: exécutez pyodbc.Drivers () et filtrez le nom du pilote contenant «SQLServer» pour vous assurer que le nom du pilote correct est utilisé tel que «ODBCDriver17 pour SQLServer»; 4. Paramètres clés de la chaîne de connexion

ShutLil.rmtree () est une fonction de Python qui supprime récursivement l'intégralité de l'arborescence du répertoire. Il peut supprimer les dossiers spécifiés et tous les contenus. 1. Utilisation de base: utilisez ShutLil.rmtree (Path) pour supprimer le répertoire, et vous devez gérer FileLenotFoundError, PermissionError et autres exceptions. 2. Application pratique: vous pouvez effacer les dossiers contenant des sous-répertoires et des fichiers en un seul clic, tels que des données temporaires ou des répertoires mis en cache. 3. Remarques: L'opération de suppression n'est pas restaurée; FilenotFoundError est lancé lorsque le chemin n'existe pas; Il peut échouer en raison d'autorisations ou d'occupation des fichiers. 4. Paramètres facultatifs: les erreurs peuvent être ignorées par ignore_errors = true
