Maison développement back-end Tutoriel Python Explication détaillée d'un tutoriel simple pour l'installation de PIL en python

Explication détaillée d'un tutoriel simple pour l'installation de PIL en python

Mar 10, 2017 pm 01:51 PM
pil python

Cet article explique principalement en détail le tutoriel simple d'installation de PIL en python. Les amis intéressés peuvent s'y référer

L'installation de PIL en python est une chose très gênante si vous souhaitez l'utiliser en python. un programme graphique enregistre simplement une image à partir d'un flux binaire (par exemple, en utilisant Scrapy pour explorer et enregistrer des images), il utilisera la bibliothèque PIL
, et cette bibliothèque est notoirement difficile à installer.

Son Les performances sont que si vous utilisez ImagePipeline de Scrapy, il utilisera PIL par défaut. Si le décodeur graphique n'est pas installé correctement, les erreurs suivantes se produiront :

IOError : décodeur jpeg non disponible<.>J'ai cherché de nombreuses méthodes sur Internet, mais elles ne fonctionnent toujours pas, et je ne sais pas ce qui se passe. J'ai d'abord pensé qu'il y avait un problème avec l'installation de la bibliothèque PIL. , mais même si PIL est installé correctement, l'erreur ci-dessus se produit toujours. La raison réside dans le problème du décodeur

Plus tard, j'ai trouvé un package appelé Imaging-1.1.7, je l'ai installé au hasard et je l'ai ignoré après. a fonctionné. La dette technique doit toujours être remboursée, mais je ne l'ai pas fait. En y réfléchissant si vite, j'ai rencontré le même problème sur Ubuntu juste avant la sortie du projet

J'ai utilisé ce package directement, mais le résultat était...

La réponse est bien sûr douloureuse, c'est toujours IOError ~

D'accord, laissez tomber les choses douloureuses Après de nombreuses hésitations, j'ai finalement trouvé une lueur d'espoir. les informations de tableau suivantes :

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version    1.1.7
platform   linux2 2.7.6 (default, Jun 22 2015, 17:58:13)
       [GCC 4.8.2]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
*** ZLIB (PNG/ZIP) support not available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------

Remarque : Ce tableau s'affiche après avoir utilisé la configuration de Python. py build dans le répertoire d'installation d'Imaging.

Si vous voyez Vous devez être plus détaillé et vous le découvrirez, n'est-ce pas ! Tous les décodages d'images ne sont pas pris en charge. Le problème ne vient pas de PIL, mais du décodeur. . La raison pour laquelle j'ai réussi à l'installer sur OSX doit être parce que j'ai déjà installé ces décodeurs

Afin d'éviter que d'autres amis ne tombent à nouveau dans cette fosse, la méthode d'installation a été spécialement réglée :

Mac OSX
brew updatebrew install libjpeg libpng

Il suffit d'installer ces deux-là

Ubuntu 14.0.4
sudo apt-get install libjpeg-dev libpng12 -dev libfreetype6-dev libtiff-dev
C'est un peu pire sous Linux, il faut installer un quelques packages supplémentaires.

Ce n'est pas suffisant, il est préférable d'utiliser simplement le package python Pillow au lieu de le faire manuellement. Téléchargez le package Imaging, utilisez simplement la commande suivante

pip install -I. --no-cache-dir -v Pillow

Une fois cette commande exécutée, il y aura beaucoup d'informations, ne vous inquiétez pas, trouvez-les simplement. Ce qui suit fera l'affaire :

--------------------------------------------------------------------
PIL SETUP SUMMARY
--------------------------------------------------------------------
version   Pillow 3.2.0
platform   linux2 2.7.6 (default, Jun 22 2015, 17:58:13)
       [GCC 4.8.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
*** OPENJPEG (JPEG2000) support not available
--- ZLIB (PNG/ZIP) support available
*** LIBTIFF support not available
--- FREETYPE2 support available
*** LITTLECMS2 support not available
*** WEBP support not available
*** WEBPMUX support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

To check the build, run the selftest.py script.

Cela fera l'affaire ! Un autre conseil : veuillez faire attention à la ligne ci-dessus,

Pour vérifier la version, exécutez le script selftest.py <.>Ceselftest.py est une bonne chose. Au moins, vous pouvez savoir s'il réussit ou non. Je souhaite à tous une installation réussie !

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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

Rimworld Odyssey Comment pêcher
1 Il y a quelques mois By Jack chen
Puis-je avoir deux comptes Alipay?
1 Il y a quelques mois By 下次还敢

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel PHP
1506
276
Python Connexion à SQL Server PyoDBC Exemple Python Connexion à SQL Server PyoDBC Exemple Jul 30, 2025 am 02:53 AM

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

Python Shutil rmtree Exemple Python Shutil rmtree Exemple Aug 01, 2025 am 05:47 AM

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

Qu'est-ce que l'arbitrage statistique dans les crypto-monnaies? Comment fonctionne l'arbitrage statistique? Qu'est-ce que l'arbitrage statistique dans les crypto-monnaies? Comment fonctionne l'arbitrage statistique? Jul 30, 2025 pm 09:12 PM

L'introduction à l'arbitrage statistique L'arbitrage statistique est une méthode commerciale qui capture l'inadéquation des prix sur le marché financier basé sur des modèles mathématiques. Sa philosophie principale découle de la régression moyenne, c'est-à-dire que les prix des actifs peuvent s'écarter des tendances à long terme à court terme, mais reviendront éventuellement à leur moyenne historique. Les traders utilisent des méthodes statistiques pour analyser la corrélation entre les actifs et rechercher des portefeuilles qui changent généralement de manière synchrone. Lorsque la relation de prix de ces actifs est anormalement déviée, des opportunités d'arbitrage se présentent. Sur le marché des crypto-monnaies, l'arbitrage statistique est particulièrement répandu, principalement en raison de l'inefficacité et des fluctuations drastiques du marché lui-même. Contrairement aux marchés financiers traditionnels, les crypto-monnaies fonctionnent 24h / 24 et leurs prix sont très susceptibles de briser les nouvelles, les sentiments des médias sociaux et les améliorations technologiques. Cette fluctuation des prix constante crée fréquemment un biais de prix et fournit aux arbitrageurs un

Comment exécuter des requêtes SQL dans Python? Comment exécuter des requêtes SQL dans Python? Aug 02, 2025 am 01:56 AM

Installer le pilote de base de données correspondant; 2. Utilisez Connect () pour se connecter à la base de données; 3. Créez un objet de curseur; 4. Utilisez EXECUTE () ou Execumany () pour exécuter SQL et utiliser une requête paramétrée pour empêcher l'injection; 5. Utilisez fetchall (), etc. pour obtenir des résultats; 6. commit () est requis après modification; 7. Enfin, fermez la connexion ou utilisez un gestionnaire de contexte pour le gérer automatiquement; Le processus complet garantit que les opérations SQL sont sûres et efficaces.

Comment créer un environnement virtuel à Python Comment créer un environnement virtuel à Python Aug 05, 2025 pm 01:05 PM

Pour créer un environnement virtuel Python, vous pouvez utiliser le module VENV. Les étapes sont: 1. Entrez le répertoire de projet pour exécuter l'environnement Python-Mvenvenv pour créer l'environnement; 2. Utilisez SourceEnv / Bin / Activer sur Mac / Linux et Env \ Scripts \ Activate sur Windows; 3. Utilisez le package d'installation PiPinstall, PipFreeze> exigence.txt pour exporter les dépendances; 4. Veillez à éviter de soumettre l'environnement virtuel à GIT et confirmez qu'il est dans le bon environnement pendant l'installation. Les environnements virtuels peuvent isoler les dépendances du projet pour prévenir les conflits, en particulier adaptés au développement multi-projets, et les éditeurs tels que PyCharm ou VScode sont également

Python Lire Fichier Ligne by Line Exemple Python Lire Fichier Ligne by Line Exemple Jul 30, 2025 am 03:34 AM

La façon recommandée de lire les fichiers ligne par ligne dans Python est d'utiliser WithOpen () et pour les boucles. 1. Utiliser WithOpen ('Exemple.txt', 'R', Encoding = 'UTF-8') asfile: pour assurer la fermeture sûre des fichiers; 2. Utiliser pour LineInfile: pour réaliser la lecture ligne par ligne, adaptée à la mémoire; 3. Utilisez line.strip () pour supprimer les caractères ligne par ligne et les caractères d'espace blanc; 4. Spécifiez Encoding = 'UTF-8' pour éviter les erreurs de codage; D'autres techniques incluent le fait de sauter des lignes vides, de lire N lignes avant, d'obtenir des numéros de ligne et de traitement des lignes en fonction des conditions, et toujours d'éviter l'ouverture manuelle sans fermer. Cette méthode est complète et efficace, adaptée au traitement des fichiers importants

Comment exécuter le script python avec des arguments dans vscode Comment exécuter le script python avec des arguments dans vscode Jul 30, 2025 am 04:11 AM

TorunapythonscriptwithArgumentsInvscode, configurelaUnch.jsonByopeningTheRunandDebugpanel, créant le degré dethelaunch.jsonfile, etaddingthedesiredArguulesInThe "Args" ArraywithIntheConfiguration.inyourpythonscript, Useargparsysys.argvtoacce

Exemple de minuterie de filetage Python Exemple de minuterie de filetage Python Jul 29, 2025 am 03:05 AM

Threading.Timer exécute les fonctions de manière asynchrone après un délai spécifié sans bloquer le thread principal et convient à la gestion des retards légers ou des tâches périodiques. ① utilisation basique: Créez un objet Timer et Call Start () pour retarder l'exécution de la fonction spécifiée; ② Annuler la tâche: appeler la méthode annulée () avant l'exécution de la tâche peut empêcher l'exécution; ③ Exécution de répétition: activer le fonctionnement périodique en encapsulant la classe Repetingtimer; ④ Remarque: chaque minuterie démarre un nouveau thread et les ressources doivent être gérées raisonnablement. Si nécessaire, appelez Annuler () pour éviter les déchets de mémoire. Lorsque le programme principal sort, vous devez prêter attention à l'influence des fils non prodigués. Il convient aux opérations retardées, au traitement du délai d'attente et à un sondage simple. C'est simple mais très pratique.

See all articles