recherche
Maisondéveloppement back-endTutoriel PythonApprenez à importer automatiquement les bibliothèques manquantes en python

La colonne

Tutoriel Python présente comment importer automatiquement les bibliothèques manquantes.

Apprenez à importer automatiquement les bibliothèques manquantes en python

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 :

Apprenez à importer automatiquement les bibliothèques manquantes en python

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

Apprenez à importer automatiquement les bibliothèques manquantes en python

  1. Python 3 de import se déroule à peu près dans l'ordre suivant pendant le processus de recherche :

  2. Regardez dans sys.modules, qui met en cache tous les modules importés

  3. Regardez dans sys.meta_path, qui prend en charge les chargeurs personnalisés

  4. Recherchez dans sys.path, qui enregistre les noms de répertoires de certaines bibliothèques

  5. 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.

Apprenez à importer automatiquement les bibliothèques manquantes en python

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 :

  1. Vous pouvez utiliser la méthode try…except pour implémenter une simple importation de bibliothèque tierce ou le remplacement de

  2. tous connus bibliothèques dépendantes manquantes (telles que requirements.txt), vous pouvez installer manuellement

  3. Utilisez 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!

Déclaration
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Python vs C: courbes d'apprentissage et facilité d'utilisationPython vs C: courbes d'apprentissage et facilité d'utilisationApr 19, 2025 am 12:20 AM

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 vs C: gestion et contrôle de la mémoirePython vs C: gestion et contrôle de la mémoireApr 19, 2025 am 12:17 AM

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.

Python pour l'informatique scientifique: un look détailléPython pour l'informatique scientifique: un look détailléApr 19, 2025 am 12:15 AM

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.

Python et C: trouver le bon outilPython et C: trouver le bon outilApr 19, 2025 am 12:04 AM

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 pour la science des données et l'apprentissage automatiquePython pour la science des données et l'apprentissage automatiqueApr 19, 2025 am 12:02 AM

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.

Apprendre Python: 2 heures d'étude quotidienne est-elle suffisante?Apprendre Python: 2 heures d'étude quotidienne est-elle suffisante?Apr 18, 2025 am 12:22 AM

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.

Python pour le développement Web: applications clésPython pour le développement Web: applications clésApr 18, 2025 am 12:20 AM

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 vs. C: Explorer les performances et l'efficacitéPython vs. C: Explorer les performances et l'efficacitéApr 18, 2025 am 12:20 AM

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.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Listes Sec

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

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

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP