


Apprenez à importer automatiquement les bibliothèques manquantes en python
La colonne
Tutoriel Python présente comment importer automatiquement les bibliothèques manquantes.
Les problèmes d'échec d'importation sont généralement divisés en deux types : l'un consiste à importer des modules écrits par vous-même (c'est-à-dire des fichiers avec le suffixe .py
), et l'autre consiste à importer Bibliothèque à trois. Cet article traite principalement de la deuxième situation. Si nous en avons l’occasion à l’avenir, nous aborderons en détail d’autres sujets connexes.
Pour résoudre le problème de l'échec de l'importation de la bibliothèque Python
, la clé est d'installer la bibliothèque manquante dans l'environnement en cours d'exécution (faites attention s'il s'agit d'un environnement virtuel) ou d'utiliser une alternative appropriée. Ce problème se divise en trois situations :
1. Bibliothèques manquantes dans un seul module
Lors de l'écriture du code, si nous devons utiliser une bibliothèque tierce (telle que requests
), Mais si vous n'êtes pas sûr que l'environnement d'exécution actuel l'ait installé, vous pouvez faire ceci :
try: import requestsexcept ImportError: import os os.system('pip install requests') import requests复制代码
L'effet d'écrire de cette façon est que si la bibliothèque requests
est introuvable, installez-la d'abord, puis importez-le.
Dans certains projets open source, nous pouvons également voir l'écriture suivante (en prenant json
comme exemple) :
ry: import simplejson as jsonexcept ImportError: import json复制代码
L'effet d'écrire de cette façon est que les bibliothèques tierces sont importées d'abordsimplejson
, s'il n'est pas trouvé, utilisez la bibliothèque standard intégrée json
.
L'avantage de cette façon d'écrire est qu'il n'est pas nécessaire d'importer des bibliothèques supplémentaires, mais elle présente un inconvénient, c'est-à-dire qu'elle doit garantir que les deux bibliothèques sont compatibles lors de l'utilisation d'une bibliothèque alternative. ne peut pas être trouvé dans la bibliothèque standard, alors ce n'est pas réalisable.
Si vous ne trouvez vraiment pas de bibliothèque standard compatible, vous pouvez également écrire vous-même un module (comme my_json.py
) pour obtenir ce que vous voulez, puis l'importer dans l'instruction except
.
ry: import simplejson as jsonexcept ImportError: import my_json as json复制代码
Les mots de code ne sont pas faciles à dire des bêtises. Si vous avez besoin de matériel d'apprentissage ou si vous avez des questions techniques, veuillez communiquer "Cliquez sur "
2. project
L'idée ci-dessus est destinée aux projets en cours de développement, mais elle présente plusieurs inconvénients :
1 Il n'est pas conseillé de pip install
inclure toutes les bibliothèques tierces manquantes possibles dans le code ;
2. Que dois-je faire si une bibliothèque tierce ne peut pas être remplacée par la bibliothèque standard ou ma propre bibliothèque manuscrite ?
3. Que dois-je faire si ces modifications ne sont pas autorisées pour un projet terminé ?
La question ici est donc : il y a un projet que je souhaite déployer sur une nouvelle machine. Il implique de nombreuses bibliothèques tierces, mais aucune d'entre elles n'est préinstallée sur la machine. ?
Pour un projet conforme, selon convention, il contient généralement un fichier "requirements.txt
" qui enregistre toutes les bibliothèques dépendantes du projet et leurs numéros de version requis. Celui-ci est généré à l'aide de la commande pip freeze > requirements.txt
avant la sortie du projet.
Utilisez la commande pip install -r requirements.txt
(exécutez-la dans le répertoire où se trouve le fichier, ou écrivez le chemin de l'intégralité du fichier dans la commande) pour installer automatiquement toutes les bibliothèques dépendantes.
Mais que se passe-t-il si le projet n'est pas conforme ou, pour une autre raison malheureuse, nous ne disposons pas d'une telle documentation ?
Une méthode stupide consiste à exécuter le projet, à attendre qu'il génère une erreur, et si une bibliothèque d'importation échoue, à l'installer manuellement, puis à réexécuter le projet, et si la bibliothèque d'importation échoue, à l'installer, et ainsi de suite. sur... …
3. Importer automatiquement toutes les bibliothèques manquantes
Existe-t-il une meilleure façon d'importer automatiquement les bibliothèques manquantes ?
Existe-t-il un moyen d'importer automatiquement les bibliothèques requises sans modifier le code d'origine et sans nécessiter le fichier "requirements.txt
" ?
Bien sûr ! Jetons d'abord un coup d'œil à l'effet :
Prenons tornado
comme exemple. On voit dès la première étape que nous n'avons pas installé tornado
. Après la deuxième étape, lors de l'importation à nouveau de tornado
, le programme téléchargera et installera automatiquement tornado
pour nous, donc aucune erreur ne sera signalée.
autoinstall
est notre module manuscrit, le code est le suivant :
# 以下代码在 python 3.6.1 版本验证通过import sysimport osfrom importlib import import_moduleclass AutoInstall(): _loaded = set() @classmethod def find_spec(cls, name, path, target=None): if path is None and name not in cls._loaded: cls._loaded.add(name) print("Installing", name) try: result = os.system('pip install {}'.format(name)) if result == 0: return import_module(name) except Exception as e: print("Failed", e) return Nonesys.meta_path.append(AutoInstall)复制代码
sys.meta_path
est utilisé dans ce code, imprimons-le d'abord pour voir ce que c'est ? Le mécanisme
Python 3
deimport
se déroule à peu près dans l'ordre suivant pendant le processus de recherche :-
Regardez dans
sys.modules
, qui met en cache tous les modules importés Regardez dans
sys.meta_path
, qui prend en charge les chargeurs personnalisés-
Recherchez dans
sys.path
, qui enregistre les noms de répertoires de certaines bibliothèques S'il n'est pas trouvé, lancez une
ImportError
exception
Il convient de noter que sys.meta_path
est différent dans les différentes versions Python
Par exemple, il est très différent entre Python 2
et Python 3
dans les versions plus récentes de Python 3
; (3.4+), les chargeurs personnalisés doivent implémenter la méthode find_spec
, alors que les versions antérieures utilisaient find_module
.
Le code ci-dessus est un chargeur de bibliothèque de classes personnalisé AutoInstall
, qui peut importer automatiquement des bibliothèques tierces. Il convient de noter que cette méthode "piratera" toutes les bibliothèques nouvellement importées et détruira la méthode d'importation d'origine, donc des problèmes étranges peuvent également survenir, alors faites attention.
sys.meta_path
est une application de la sonde Python
. Les sondes, ou import hook
, sont des mécanismes Python
qui n'attirent presque aucune attention, mais ils peuvent faire beaucoup de choses, comme charger des bibliothèques sur le réseau, modifier des modules lors de leur importation, installer automatiquement des bibliothèques manquantes et télécharger des informations d'audit. , chargement paresseux, et plus encore.
En raison du manque de place, nous ne développerons pas davantage. Enfin, pour résumer :
Vous pouvez utiliser la méthode
try…except
pour implémenter une simple importation de bibliothèque tierce ou le remplacement detous connus bibliothèques dépendantes manquantes (telles que
requirements.txt
), vous pouvez installer manuellementUtilisez
sys.meta_path
pour importer automatiquement toute bibliothèque manquante
Recommandations d'apprentissage gratuites associées : Tutoriel Python(vidéo)
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!

Python est plus facile à apprendre et à utiliser, tandis que C est plus puissant mais complexe. 1. La syntaxe Python est concise et adaptée aux débutants. Le typage dynamique et la gestion automatique de la mémoire le rendent facile à utiliser, mais peuvent entraîner des erreurs d'exécution. 2.C fournit des fonctionnalités de contrôle de bas niveau et avancées, adaptées aux applications haute performance, mais a un seuil d'apprentissage élevé et nécessite une gestion manuelle de la mémoire et de la sécurité.

Python et C ont des différences significatives dans la gestion et le contrôle de la mémoire. 1. Python utilise la gestion automatique de la mémoire, basée sur le comptage des références et la collecte des ordures, simplifiant le travail des programmeurs. 2.C nécessite une gestion manuelle de la mémoire, en fournissant plus de contrôle mais en augmentant la complexité et le risque d'erreur. Quelle langue choisir doit être basée sur les exigences du projet et la pile de technologie d'équipe.

Les applications de Python en informatique scientifique comprennent l'analyse des données, l'apprentissage automatique, la simulation numérique et la visualisation. 1.Numpy fournit des tableaux multidimensionnels et des fonctions mathématiques efficaces. 2. Scipy étend la fonctionnalité Numpy et fournit des outils d'optimisation et d'algèbre linéaire. 3. Pandas est utilisé pour le traitement et l'analyse des données. 4.Matplotlib est utilisé pour générer divers graphiques et résultats visuels.

Que ce soit pour choisir Python ou C dépend des exigences du projet: 1) Python convient au développement rapide, à la science des données et aux scripts en raison de sa syntaxe concise et de ses bibliothèques riches; 2) C convient aux scénarios qui nécessitent des performances élevées et un contrôle sous-jacent, tels que la programmation système et le développement de jeux, en raison de sa compilation et de sa gestion de la mémoire manuelle.

Python est largement utilisé dans la science des données et l'apprentissage automatique, s'appuyant principalement sur sa simplicité et son puissant écosystème de bibliothèque. 1) Pandas est utilisé pour le traitement et l'analyse des données, 2) Numpy fournit des calculs numériques efficaces, et 3) Scikit-Learn est utilisé pour la construction et l'optimisation du modèle d'apprentissage automatique, ces bibliothèques font de Python un outil idéal pour la science des données et l'apprentissage automatique.

Est-ce suffisant pour apprendre Python pendant deux heures par jour? Cela dépend de vos objectifs et de vos méthodes d'apprentissage. 1) Élaborer un plan d'apprentissage clair, 2) Sélectionnez les ressources et méthodes d'apprentissage appropriées, 3) la pratique et l'examen et la consolidation de la pratique pratique et de l'examen et de la consolidation, et vous pouvez progressivement maîtriser les connaissances de base et les fonctions avancées de Python au cours de cette période.

Les applications clés de Python dans le développement Web incluent l'utilisation des cadres Django et Flask, le développement de l'API, l'analyse et la visualisation des données, l'apprentissage automatique et l'IA et l'optimisation des performances. 1. Framework Django et Flask: Django convient au développement rapide d'applications complexes, et Flask convient aux projets petits ou hautement personnalisés. 2. Développement de l'API: Utilisez Flask ou DjangorestFramework pour construire RestulAPI. 3. Analyse et visualisation des données: utilisez Python pour traiter les données et les afficher via l'interface Web. 4. Apprentissage automatique et AI: Python est utilisé pour créer des applications Web intelligentes. 5. Optimisation des performances: optimisée par la programmation, la mise en cache et le code asynchrones

Python est meilleur que C dans l'efficacité du développement, mais C est plus élevé dans les performances d'exécution. 1. La syntaxe concise de Python et les bibliothèques riches améliorent l'efficacité du développement. Les caractéristiques de type compilation et le contrôle du matériel de CC améliorent les performances d'exécution. Lorsque vous faites un choix, vous devez peser la vitesse de développement et l'efficacité de l'exécution en fonction des besoins du projet.


Outils d'IA chauds

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

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

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP