Apprentissage Python, ce pack 22 Comment pouvez-vous pas comprendre?

Auteur | Erik-Jan van Baaren

Traducteur | ménisque, Zebian | Tu Min

Figure Head | RPSC télécharger à partir de l'Est IC

Produit | RPSC (ID: CSDNnews)

Ce qui suit est la traduction:

Que diriez-vous d'une industrie mondiale de Python d'utilisation de maintenant?

Le problème est que mon intention originale d'écrire cet article. Je permis d'identifier 22 du paquet Python le plus couramment utilisé qui vous donnera un peu d'inspiration.

Tout d'abord sur ma liste de téléchargements PyPI package Python plus haut de l'année dernière. Le regard de déposons sur le rôle de ces paquets, la relation entre eux, et pourquoi si populaire.

1. Urllib3

893 millions de téléchargements

Urllib3 Python est un client HTTP, qui offre de nombreuses fonctionnalités qui ne sont pas la bibliothèque standard de Python.

  • sécurité des threads

  • Connection Pooling

  • l'authentification SSL client / TLS

  • Utilisez le téléchargement de fichier encodé multipart

  • Accessibilité pour les demandes de retransmission de traitement et HTTP redirection

  • Supports gzip et l'encodage dégonfler

  • HTTP et SOCKS support de proxy

Bien que le nom est Urllib3, mais ce n'est pas la version qui vient avec le successeur de Python urllib2. Si vous souhaitez utiliser les fonctionnalités clés de Python possible (par exemple, en raison de certaines limitations cause ne peut être installé), vous pouvez jeter un oeil à urllib.request.

Pour les utilisateurs finaux, je recommande fortement pack demandes (sixième liste de référence). nombre Urllib3 une raison est parce que près de 1200 paquets en dépendent, beaucoup de ces logiciels sont également parmi les meilleurs dans la liste.

2. six

732 millions de téléchargements

Six est le Python 2 et Python 3 Compatibilité. Le but du projet est de permettre l'exécution de code sur Python 2 et Python 3.

Il fournit un certain nombre de fonctions pour couvrir les différences de syntaxe entre Python 2 et Python 3. Des exemples des plus faciles à comprendre est six.print_. En Python 3, fonction d'impression sortie requise et imprimer Python 2 est utilisé sans parenthèses. Par conséquent, six.print_ peut prendre en charge deux langues en même temps.

Légende:

  • Le nom du paquet de six 2 x 3 = 6

  • bibliothèques similaires, ainsi que l'avenir

  • Si vous voulez convertir le code en Python 3, vous pouvez jeter un oeil (alors qu'aucun Python 2 plus pris en charge) à 2to3

Même si je comprends que le paquet est si populaire, mais veulent toujours les gens à abandonner Python 2 le plus rapidement possible, en particulier à partir de 20201 pas officiellement Janvier soutenir plus le Python 2.

3. botocore, boto3, s3transfer, awscli

Ces projets ensemble, a déclaré:

  • botocore: n ° 3, 660 millions de téléchargements

  • s3transfer: No. 7, 584 millions de téléchargements

  • awscli: No. 17, 394 millions de téléchargements

  • boto3: n ° 22, 329 millions de téléchargements

L'interface du Botocore sous-jacente AWS. botocore est le boto3 de base (n ° 22) des bibliothèques, qui vous donne accès à S3, EC2 et d'autres services d'Amazon.

Botocore également la base AWS-CLI, qui est le AWS d'interface de ligne de commande.

s3transfer (septième) est une bibliothèque Python S3 pour la gestion de la transmission. La bibliothèque est encore en développement, il est toujours pas recommandé pour un usage domestique, au moins à une version fixe ou de l'utilisation, parce que son API peut varier même parmi le petit nombre de version. boto3, AWS-CLI et de nombreux autres projets dépendent s3transfer.

bibliothèque classée AWS connexes est si élevé, il indique à quel point populaire service AWS.

4. Pip

627 millions de fois télécharger

Je suppose que beaucoup de gens connaissent et pip d'amour (outils d'installation de package Python). Utilisez la touche PIP package d'installation sans effort des entrepôts pypi et d'autres (par exemple, miroir local ou un entrepôt de logiciel propriétaire personnalisé).

A propos des anecdotes de pépin:

  • Le nom de Pip est une définition récursive: pip Installe paquets

  • Pip est très facile à utiliser. Installer un paquet n'a besoin que d'effectuer l'installation pip < noms de paquets > . Supprimer seulement besoin d'effectuer de désinstallation pip < noms de paquets > .

  • Pip plus grand avantage est qu'il peut installer une série de paquets, généralement placés requirements.txt fichier. Le fichier peut également spécifier la version détaillée de chaque paquet. projet Python comprendra la grande majorité de ce document.

  • Utilisez la touche PIP conjonction avec virtualenv (57e), vous pouvez créer une base prévisible, indépendante de l'environnement, et ne pas interagir avec l'environnement du système lui-même.

5. python-dateutil

617 millions de téléchargements

Module Python-dateutil fournit des extensions puissantes au module datetime standard. datetime Python ordinaire ne peut pas faire des choses qui peuvent être utilisés python-dateutil terminé.

Vous pouvez faire beaucoup de fonctionnalité très cool avec cette bibliothèque. Je ne peux donner un exemple très utile: parse floue la chaîne de date à partir du fichier journal:

de dateutil.parser Parse d'importation logline = 'INFO 2020-01-01T00: 00: 01 Bonne année, humain.' timestamp = parse (log_line, = floue vrai) print (horodatage) # 01/01/202000:00:01

6. demande

611 millions de téléchargements

Les demandes de téléchargements basés Bibliothèque de urllib3 premier. Avec lui, envoyer une demande pour devenir extrêmement simple. Beaucoup de gens aiment des demandes dépasse le urllib3, Requets donc les utilisateurs finaux ont besoin de plus de urllib3. Ce dernier niveau inférieur, en général que d'autres éléments semblent dépendants.

L'exemple suivant montre comment il est facile aux demandes d'utilisation:

les demandes d'importation r = requests.get ( 'https://api.github.com/user', auth = ( 'utilisateur', 'pass')) r.status_code # 200 r.headers # 'Application / JSON; charset = UTF8' r.encoding # 'Utf-8' R.TEXT # U '{ "type": "Utilisateur" ...' r.json # {U'disk_usage ': 368627, u'private_gists': 484, ...}

7. s3transfer

La première 3,7,17 et 22 sont reliés entre eux, s'il vous plaît voir l'introduction de trois.

8. Certifi

552 millions de téléchargements

Ces dernières années, presque tous les sites commencent à utiliser SSL, il peut être vu de l'icône de cadenas dans la barre d'adresse, l'icône signifie que le site est sécurisé, crypté pour éviter l'écoute clandestine.

Le chiffrement basé sur les certificats SSL, le certificat SSL par une société de confiance ou d'un organisme sans but lucratif responsable de l'émission tels LetsEncrypt. Ces organisations ont émis le certificat pour signer numériquement en utilisant leurs certificats.

Avec ces partie publique du certificat, le navigateur peut vérifier le site de signature, prouvant ainsi que vous visitez le site réel, mais pas dans d'autres données l'écoute clandestine.

Python peut faire la même fonction, ce qui nécessite l'utilisation de certifi. Il certificat racine Chrome, Firefox et les autres navigateurs Web, et ensemble bord inclus aucune différence.

Certifi certificat racine est une collection, de sorte que le code Python peut valider le certificat SSL fiabilité.

De nombreux projets ont confiance et comptent certifi, ces projets peuvent être vus ici. Ceci est la raison pour laquelle le projet est classé si haut.

9. Idna

527 millions de téléchargements

Selon la page PyPI, IDNA pour fournir « pour le protocole IDNA (noms de domaine internationalisés dans les applications) RFC5891 définies à l'appui. »

Nous prenons un regard IDNA Qu'est-ce que cela signifie:

Règles IDNA du nom de domaine contient des caractères non-ASCII dans. Mais le nom d'origine n'a pas encore supporter des caractères non-ASCII? Alors, quel est le problème?

Le problème est que de nombreuses applications (comme client de messagerie et d'un navigateur Web, etc.) ne prennent pas en charge les caractères non-ASCII. Ou, plus précisément, courrier électronique et HTTP protocole ne prend pas en charge ces caractères.

Dans de nombreux pays, ce ne sont pas un problème, mais comme la Chine, la Russie, l'Allemagne, l'Indonésie et d'autres pays est très pratique. Par conséquent, certaines personnes intelligentes dans ces pays ont ensemble fait IDNA, ce n'est pas tout à fait accidentelle.

IDNA sont deux fonctions essentielles: ToASCII et ToUnicode. Les noms de domaine ToASCCI international Unicode seront convertis en chaîne ASCII, ToUnicode fera le processus inverse. Dans le paquet IDNA, et ces deux fonctions est appelé idna.encode idna.decode, voir les exemples suivants:

importation IDNA idna.encode ( ' nn. su Te') # B'xn - eckwd4c7c.xn - zckzah ' imprimer (idna.decode ( 'XN - eckwd4c7c.xn - zckzah')) # nn. Su Te

Les détails du codage se trouvent dans RFC3490.

10. PyYAML

525 millions de téléchargements

YAML est un format de sérialisation de données. Son objectif de conception est de faciliter simultanément humain et lisible par machine - humaine est facile à lire, l'ordinateur est difficile à résoudre.

Python est analyseur PyYAML YAM et le codeur, ce qui signifie qu'il peut lire et écrire le format YAML. Il peut être un objet Python codé comme YAML: listes, dictionnaires, et même des instances de classe peuvent être.

Python fournit son propre gestionnaire de configuration, mais beaucoup mieux que YAML offre une fonctionnalité qui vient avec Python ConfigParser (utilisez uniquement le plus de fichiers .ini de base).

Par exemple, YAML peut stocker tout type de données: booléen, liste, flottent comme. Tout à l'intérieur ConfigParse enregistré en tant que chaîne. Si vous souhaitez utiliser ConfigParser pour charger le certificat, vous devez spécifier ce que vous avez besoin est un entier:

config.getint ( "article", "my_int")

PyYAML peut identifier automatiquement le type, cela peut être obtenu de sorte que seul int:

config

YAML également niché de façon arbitraire profonde, bien que tous les projets ne nécessite, mais très pratique.

Vous pouvez décider lequel utiliser, mais de nombreux projets utilisent YAML comme un fichier de configuration, de sorte que la popularité du projet est très élevé.

11. pyasn1

512 millions de téléchargements

IDNA le même que la quantité d'information décrite dans ce projet est très important:

type ASN.1 et le codage DER / BER / CER (X.208) pur de mise en uvre python.

Heureusement, nous pouvons encore trouver la norme depuis des décennies une grande partie de l'information. ASN.1 est une abréviation de syntaxe abstraite numéro un (Abstract Syntax Notation One), et la séquence de l'émetteur de données. Il vient de l'industrie des communications. Peut-être vous connaissez le tampon de protocole ou Apache Thrift, non? Il est leur version du ASN.11984.

ASN.1 décrit l'interface entre la plate-forme en coupe un autre système, il envoie une structure de données.

Rappelez-vous certifi huit premiers do? format ASN.1 pour les certificats est protocole HTTPS défini et beaucoup d'autres système de cryptage utilisé. ASN.1 est également largement utilisé dans SNMP, LDAP, Kerberos, UMTS, LTE et d'autres protocoles VOIP.

Il est une norme très complexe, il a été constaté que certains atteignent pleinement de la vulnérabilité. Vous pouvez regarder la discussion de la ASN.1 (https://www.reddit.com/r/programming/comments/1hf7ds/useful_old_technologies_asn1/) sur Reddit.

À moins vraiment nécessaire, sinon je ne recommande pas l'utiliser. Mais parce que beaucoup d'endroits utilisent l'accord, de nombreux paquets en dépendent.

12. docutils

508 millions de téléchargements

Docutils est un système modulaire, pour convertir le document de texte brut dans d'autres formats, tels que HTML, XML et comme LaTeX. docutils peut lire le format reStructuredText (similaire à un format MarkDown facile à lire) des documents en texte brut.

Je suppose que vous devez avoir entendu le document PEP, il peut même lire. Quel document est un PEP?

PEP moyenne python Proposition renforcée (propositions d'amélioration python). PEP est un document conçu pour une information communautaire n Pytho ou est le Python (ou de l'environnement du processeur) décrit une nouvelle fonctionnalité. PEP devrait fournir des fonctionnalités standards techniques précises, et donne des raisons de cette propriété.

PEP est d'utiliser un modèle de document reStructuredText fixe, puis transformé en un beau document par docutils.

Le noyau du Sphinx également utilisé docutils. projet Sphinx est utilisé pour créer le document. Si docutils est une machine, le Sphinx est une usine. Il a été conçu à l'origine pour construire le document P ython lui-même, mais de nombreux autres projets utilisent également Sphinx pour créer le document.

Vous devez passer un document sur readthedocs.org, non? Lorsque les documents sont créés à l'aide du Sphinx et docutils.

13. Chardet

501 millions de téléchargements

Vous pouvez utiliser le module pour vérifier le jeu de caractères fichier chardet ou flux de données. Cette fonction est très utile lors de l'analyse d'un grand nombre de texte aléatoire. Il peut également être utilisé pour déterminer la chaîne de données à distance de téléchargement.

Une fois l'installation chardet, vous pouvez utiliser l'outil de ligne de commande chardetect, utilisée comme suit:

chardetect somefile.txt somefile.txt: ascii avec confiance 1.0

Vous pouvez également utiliser la bibliothèque, consultez la documentation (https://chardet.readthedocs.io/en/latest/usage.html) dans le programme.

Les demandes et beaucoup d'autres paquets dépendent chardet. Je suppose que pas trop de gens directement chardet, de sorte que sa popularité est certainement dérivé de ces dépendances.

14. RSA

492 millions de téléchargements

RSA Rsa est pure mise en uvre Python. Il prend en charge les fonctions suivantes:

  • Chiffrement et le déchiffrement

  • La signature et la vérification signature

  • Les clés privées sont générées selon PKCS # 1 version 1.5

Il peut être utilisé comme une bibliothèque Python qui peut être utilisé sur la ligne de commande.

  • RSA nom nom de trois lettres de trois personnes: Ron Rivest, Adi Shamir et Leonard Adleman. Ils ont inventé l'algorithme en 1977.

  • système de chiffrement à clé publique RSA est un groupe de premier, largement utilisé pour la transmission sécurisée des données. Ce système de chiffrement comprend deux clés: une clé publique, une clé privée. En utilisant la clé publique pour crypter les données et les données ne peuvent être déchiffré avec la clé privée.

  • RSA algorithme est très lent. En général non cryptées directement en utilisant les données de l'utilisateur de l'algorithme RSA, mais plutôt l'utiliser pour chiffrer la clé partagée utilisée dans un système de chiffrement symétrique, un système de chiffrement symétrique, car le jeûne, adapté pour chiffrer de grandes quantités de données.

Le code suivant illustre l'utilisation de RSA:

importation rsa # Bob crée une paire de clés: (Bob_pub, bob_priv) = rsa.newkeys (512) # Alice ecnrypts un message pour Bob # Avec sa clé publique Crypto = rsa.encrypt ( 'bonjour Bob!, bob_pub) # Quand Bob reçoit le message, il # Déchiffre avec sa clé privée: message = rsa.decrypt (crypto, bob_priv) imprimer (message.decode ( 'utf8')) # Bonjour Bob!

Supposons que Bob a privé clé privée, Alice peut être sûr que seul Bob peut lire le message.

Mais Bob et Alice ne sont pas convaincus que les informations de l'expéditeur parce que tout le monde peut obtenir la clé publique de Bob. Afin de prouver que l'expéditeur est vraiment Alice, elle peut utiliser votre propre clé privée pour signer le message. Bob peut utiliser la clé publique d'Alice pour vérifier la signature pour assurer l'expéditeur est vraiment Alice.

De nombreux autres paquets se fondent sur rsa, comme google-auth (37e), oauthlib (54e), awscli (17). Ce forfait ne sera pas souvent utilisé directement, car il y a beaucoup de façons plus rapides et plus natif.

15. Jmespath

473 millions de téléchargements

Il est facile à utiliser JSON en Python, car JSON parfaitement mis en correspondance avec le dictionnaire Python. Je pense que c'est l'une des meilleures caractéristiques.

Pour être honnête, je ne l'ai jamais entendu jmepath ce paquet, même si je l'ai utilisé beaucoup de JSON. J'utiliser json.loads alors lire manuellement les données du dictionnaire, peut-être vous devez écrire quelques cycles.

JMESPath, lire comme « chemin James », peut être plus facile à utiliser JSON en Python. Vous pouvez définir déclarative comment lire des données du document JSON. Voici quelques exemples de base:

importation jmespath # Obtenez un élément spécifique d = { "foo": { "bar": "baz"}} print (jmespath.search ( 'foo.bar', d)) # Baz # L'utilisation d'un caractère générique pour obtenir tous les noms d = { "foo": { "bar":}} print (jmespath.search ( 'foo.bar.name', d)) #

Ceci est juste la pointe de l'iceberg. Voir plus l'utilisation de ses documents et à la maison PyPI.

16. setuptools

401 millions de téléchargements

Setuptools est un outil utilisé pour créer le package Python.

Documentation de ce projet est très mauvais. Le document ne décrit pas sa fonction, contient également des liens morts. Vraiment une bonne documentation ici: https: //packaging.python.org/, et ce tutoriel article sur la façon de créer un package Python: https: //packaging.python.org/tutorials/packaging-projects/.

17. awscli

La première 3,7,17 et 22 sont reliés entre eux, s'il vous plaît voir l'introduction de trois.

18. pytz

394 millions de téléchargements

DateUtils similaires à la 5e place, la bibliothèque peut vous aider à manipuler les dates et heures. Zone beaucoup de difficultés à gérer. Heureusement, ce package permet gestionnaire de fuseau horaire facile.

A propos de temps, mon expérience est: toujours utiliser UTC en interne, seulement si nécessaire pour produire une sortie lisible par l'homme converti à l'heure locale.

Voici des exemples de pytz:

de datetime import datetime du fuseau horaire d'importation pytz amsterdam = fuseau horaire (Europe / Amsterdam) ams_time = amsterdam.localize (datetime (2002, 10, 27, 6, 0, 0)) print (ams_time) # 2002-10-2706: 00: 00 + 01: 00 # Il saura aussi quand il est l'heure d'été # A Amsterdam (similaire à l'heure d'été): ams_time = amsterdam.localize (datetime (2002, 6, 27, 6, 0, 0)) print (ams_time) # 2002-06-2706: 00: 00 + 02: 00

Plus de documentation et des exemples peuvent être trouvés dans la page PyPI.

19. Futures

389 millions de téléchargements

A partir de Python 3.2, Python a commencé à offrir concurrent.futures module qui peut vous aider à effectuer des opérations asynchrones. La transplantation est l'inverse de la bibliothèque de paquet à terme, de sorte qu'il est utilisé pour le python 2. La version actuelle ne nécessite pas le paquet Python 3, parce que Python 3 lui-même fournit cette fonctionnalité.

Plus tôt, je l'ai dit qu'à partir du 1er Janvier 2020, les autorités ont cessé de soutenir Python 2. J'espère que l'année prochaine pour faire cette liste lorsqu'ils ne sont plus voir 22 avant rejet dans l'emballage.

Voici le paquet à terme d'utilisation de base:

de concurrent.futures ThreadPoolExecutor d'importation de temps de sommeil d'importation def return_after_5_secs (message): sommeil (5) un message retour Piscine = ThreadPoolExecutor (3) avenir = pool.submit (return_after_5_secs, ( "Bonjour tout le monde")) print (future.done) # Faux sommeil (5) print (future.done) # Vrai print (future.result) # Bonjour tout le monde

Visible, nous pouvons créer un pool de threads, puis soumis à une fonction, laisser un fil. En même temps, votre programme continuera à fonctionner sur le thread principal. Ceci est une exécution en parallèle d'une manière très facile.

20. Colorama

370 millions de téléchargements

Vous pouvez utiliser la couleur add Colorama sur le terminal:

L'exemple suivant montre comment il est facile de réaliser cette fonction sont:

d'importation Colorama Fore, Retour, Style imprimer (Fore.RED + « texte rouge ») imprimer (Back.GREEN + 'et avec un fond vert) imprimer (Style.DIM + 'et dans le texte sombre) imprimer (Style.RESET_ALL) imprimer ( « retour à la normale maintenant »)

21. simplejson

341 millions de téléchargements

Python est fourni avec le module JSON Quel est le problème avec ce paquet ont conduit à un tel haut rang? Pas de problème! En effet, le JSON de Python est simplejson. Mais simplejson présente plusieurs avantages:

  • Peut fonctionner sur la version plus Python

  • la fréquence de mise à jour plus que Python

  • Une partie du code est écrit en C, va très vite

Parfois, vous verrez un script écrit:

essayez: simplejson importation JSON except ImportError: importation JSON

Cependant, à moins que la bibliothèque standard nécessite certaines fonctionnalités qui ne sont pas, je vais toujours utiliser JSON. Simplejson peut être beaucoup plus rapide que JSON, parce qu'une partie de celui-ci est mis en uvre en C. Mais à moins que vous voulez traiter avec des milliers de JSON, sinon cette augmentation de vitesse n'est pas évidente. En outre, vous pouvez également jeter un oeil UltraJSON, cela est presque entièrement écrit dans le paquet C, il devrait être plus rapide.

22. boto3

La première 3,7,17 et 22 sont reliés entre eux, s'il vous plaît voir l'introduction de trois.

conclusion

Ecrire seulement 22 paquet est difficile, parce que beaucoup de paquets sont les utilisateurs finaux préfèrent le dos des paquets.

La rédaction de cet article m'a donné un peu d'inspiration:

  • Beaucoup paquet de haut rang fournit des fonctions de base, telles que le temps de traitement, les fichiers de configuration, le chiffrement et la normalisation. Ils sont souvent dépendants d'autres éléments.

  • Le scénario le plus d'utilisation de commun est de se connecter. De nombreux paquets fournissent une fonctionnalité qui est connecté à un serveur, ou d'autres programmes de soutien se connectent au serveur.

  • Autre package est une extension de Python, comme package Python d'outils pour créer, documenter outil de création, créer des outils de compatibilité de version, et ainsi de suite.

J'espère que vous apprécierez cette liste, et être en mesure de gagner de!

Original: https: //medium.com/better-programming/the-22-most-used-python-packages-in-the-world-7020a904b2e

Cet article traduction RPSC, s'il vous plaît indiquer la source de la source.

Tsinghua Sciences groupe Pa des entreprises industrielles Aiot re-créer des dizaines de millions de financement: le joueur doit pousser à exécuter des algorithmes sur le bord puce AI
Précédent
réponse Ali « pour combattre beaucoup de personnel compte Taobao a été fermé », micro lettre conjointement face à nouveau hacker virus de la Couronne du livre Marathon; Kubernetes 1,18 | libération G
Prochain
Tant que huit étapes, apprendre cette commande Docker ultime Tutoriel
Siri compose automatiquement le 911, le site Google construit le dépistage, les ingrédients pharmaceutiques de test IBM, l'action internationale dans la lutte contre le SRAS
Byte battre Wuhan recruter 2.000 personnes, des fabricants offrent, vous court de ce Java sec! | Programme de travail
Quand votre entreprise a-t-elle besoin de l'intelligence artificielle? | Des millions de personnes apprennent l'IA
Détection biométrique, comparaison de visages ... Comment FaceID fait-il face à la cécité? | Des millions de personnes apprennent l'IA
Un chercheur principal de Microsoft explique le DNN efficace basé sur la convolution de groupe entrelacé | Million People Learning AI
Liu Tieyan parle de l'apprentissage automatique: trop avec des vagues, nous devons refléter | millions de personnes apprennent l'IA
Remarqué? Paris dans ces petits détails réconfortants
Les champs et les rues à la satisfaction des gens de construction « Red propriété »
Power "quatre" critique, le service a repris la production complexe! Liaocheng Académie des sciences agricoles en action
percée cruciale, lutte Yong-classe | Tsui villes de district ont flashé coups durs, réels, de nouvelles tactiques
Pour assurer la sécurité des enseignants et des étudiants! conditions scolaires de tels travaux de vérification effectués dans le Shandong