ImportError: нет модуля с именем PIL


207

Я использую эту команду в оболочке для установки PIL:

easy_install PIL

то я бегу pythonи введите следующее: import PIL. Но я получаю эту ошибку:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named PIL

У меня никогда не было такой проблемы, как вы думаете?


да, это работает. каково ваше предложение?
Асма Гейсари

11
@RikPoggi Эта страница документации на самом деле говорит использовать from PIL import Image, что не работает.
Янне Карила

2
@Janne просто используйте Import Image, и PIL начинает работать.
Асма Гейсари

В это время я бы рекомендовал easy_install Pillowвместо этого. Подушка - это вилка PIL, которая имеет лучшую упаковку и поддерживает Python 3.
Леннарт Регебро

1
Можете ли вы изменить принятый ответ на тот, который рекомендует Подушку? Как сказал @LennartRegebro, этот пакет лучше долгосрочный.
Иосия Йодер

Ответы:


131

На некоторых установках PIL, вы должны сделать

import Image

вместо import PIL(PIL на самом деле не всегда импортируется таким образом). Поскольку import Imageу вас работает, это означает, что вы фактически установили PIL.

Наличие другого имени для библиотеки и модуля Python необычно, но именно это было выбрано для (некоторых версий) PIL.

Вы можете получить больше информации о том, как использовать этот модуль из официального руководства .

PS : На самом деле, на некоторых установках, import PIL делает работу, которая добавляет к путанице. Это подтверждается примером из документации , как выяснил @JanneKarila, а также некоторыми более поздними версиями пакета PIL MacPorts (1.1.7).


141
pip install imageот ответа Жимина у меня получилось.
Джим Шуберт

9
да, @JimSchubert сказал это. pip install imageу @zhimmingwangменя тоже работал
Рафаэль Руис Муньос

5
Но imageэто не PIL (как в вопросе), это другой модуль. Ссылка: github.com/francescortiz/image . Я что-то здесь упускаю?
Эрик О Лебигот

2
Вы должны проверить, что ваши pipустановки для интерпретатора Python, который вы используете. pip -Vговорит вам, где он устанавливает. Под Unix, which pythonговорит вам, где ваша pythonкоманда. Два должны соответствовать достаточно хорошо. Или лучше: python -c 'import sys; print sys.path'скажет вам, где ваша pythonкоманда ищет модули ( print(sys.path)для Python 3).
Эрик О Лебиго

1
@EricOLebigot Ваше решение, по-видимому, недооценено, ваше предложение полностью решило мою проблему и не позволило мне загрузить другие пакеты
Скотт Андерсон,

282

В оболочке запустите:

pip install Pillow

Внимание: PIL устарел, и подушка является преемником.


7
В самом деле? imageвопрос не в модуле PIL, а в «приложении Django» ( основанном на PIL). Ссылка: github.com/francescortiz/image .
Эрик О Лебигот

8
Почему это имеет голоса против? imageможет быть полезной библиотекой, но это не имеет отношения к вопросу.
GWG

2
pip install imageработал на меня. спасибо кешу duckduckgo за то, что вы держите ответ перед редактированием!
Захра

Этот метод полезен для меня.
Браво Юнг

Я видел ПОДУШКУ в других местах, Подушка здесь. cmdне чувствителен к регистру, но каков предпочтительный способ написания этого?
Иосия Йодер

54

С другой стороны, я настоятельно рекомендую использовать подушку, которая обратно совместима с PIL и лучше поддерживается / будет работать на более новых системах.

Когда это установлено, вы можете сделать

import PIL 

или

from PIL import Image

и т.д..


Ни один из других ответов не устранил проблему, которую я имел, но этот сделал.
MaxJ

51

Сначала установите подушку с

pip install Pillow

или как следует

c:\Python35>python -m pip install Pillow

Тогда в коде Python вы можете позвонить

from PIL import Image

«Подушка - это форк PIL, библиотеки изображений Python, которая больше не поддерживается. Однако для обеспечения обратной совместимости используется старое имя модуля». Из подушки установлен, но «модуль без имени» - python2.7 - Windows 7 - python -m установить подушку


5
Я получаю Требование уже выполнено, но все та же проблема
Саурабх Чандра Патель

21

Иногда я получаю такую ​​ошибку при запуске Unitest на python. Решение состоит в том, чтобы удалить и установить тот же пакет в вашей виртуальной среде.

Используя эти команды:

pip uninstall PIL

и

pip install  PIL 

Если по какой-либо причине вы получили ошибку, добавьте sudo в начале команды и после нажатия введите ваш пароль.


2
Это также работает для меня. Учтите, что можно использовать другие скрипты Python, которые косвенно используют PIL, изменение оператора Import не всегда является вариантом.
PropellerHead

Это не сработало для меня, он не смог найти хранилище под названием PIL (или pil). Однако я запустил «pip install Pillow», которая сработала. Насколько я понимаю, что подушка является филиалом PIL.
Себ Шарро

@TeeBasins Pillow - это «дружелюбная вилка PIL» Алекса Кларка и авторов.
JC Rocamonde

1
Я получаю «Не удалось найти версию, которая удовлетворяет требованию PIL (из версии
:)

20

Это работало для меня на Ubuntu 16.04:

sudo apt-get install python-imaging

Я нашел это в Wikibooks после поиска около получаса.


3
Этот вопрос задавался до Ubuntu 16.04, но я встретил эту проблему в Ubunt 16.04 и исправил ее по вашему предложению.
дурак

Рад, что смог помочь! : D
grooveplex

Это была моя проблема в RPI с OLED-экраном, отображающим вывод Python
Райан Эллис,

10

Я использовал:

pip install Pillow 

и pip установил PIL в Lib \ site-packages. Когда я переместил PIL в Lib, все работало нормально. Я на Windows 10.


9

На Windows 10 мне удалось добраться с:

cd "C:\Users\<your username>\AppData\Local\Programs\Python\Python37-32" 
python -m pip install --upgrade pip     <-- upgrading from 10.something to 19.2.2.
pip3 uninstall pillow
pip3 uninstall PIL
pip3 install image

после чего в python (python 3.7 в моем случае) это работает нормально ...

import PIL
from PIL import image

После обновления Windows 7 до Windows 10 моя программа на Python не работала, но этот метод решил ее. Спасибо!
user1785594

8

Вы должны установить образ и подушку с пакетом Python.

тип

python -m pip install image 

или запустите командную строку (в Windows), затем перейдите в папку сценариев

cd C:\Python27\Scripts

затем выполните команду ниже

pip install image


6

В Windows попробуйте проверить путь к расположению библиотеки PIL. В моей системе я заметил, что путь был

\Python26\Lib\site-packages\pil instead of \Python26\Lib\site-packages\PIL  

после переименования pilпапки PILя смог загрузить модуль PIL.


Я также получал ту же ошибку импорта. Я установил PIL с помощью easy_install. В пакетах сайта он был установлен в каталог с именем 'PIL-1.1.7-py2.7-win32.egg'. Согласно вашему предложению я изменил имя dir на PIL, и это сработало. Спасибо за вашу помощь @Komla.
shashaDenovo

5

Вам нужно будет установить Image и подушку с вашим пакетом Python. Будьте уверены, командная строка позаботится обо всем за вас.

Ударить

установочный образ python -m pip




1

Я использовал conda-forge для установки подушки версии 5, и мне показалось, что это работает:

conda install --channel conda-forge pillow=5

нормальная конда установить подушку не работает для меня.


0

У меня была такая же проблема при импорте PIL и последующем импорте модулей ImageTk и Image. Я также попытался установить PIL напрямую через pip. но не удалось добиться успеха. Между тем было высказано предположение, что PIL был удален, поэтому попытался установить подушку только через пипс. Подушка была успешно установлена, далее был сделан пакет PIL по пути: python27 / Lib / site-packages /.

Теперь и Image, и ImageTk могут быть импортированы.


0

Я недавно установил Leap. Я попробовал openshot, и он не запустился. Так что пришел сюда и нашел предложение начать с терминала, чтобы посмотреть, есть ли ошибки.

Ошибка у меня была error missing mlt. Поэтому я установил python-mltмодуль из Yast и импортировал его, попытался запустить, но следующий openshot сказалmissing pil.

Я последовал предложению Подушки, чтобы установить, потому что Яст не мог найти пил и импортированный пил. Все прошло хорошо, но не началось и показал Error missing goocanvas.

Я установил goocanvasс Yast, импортировал его в python, и Openshot запустился !!

С большим количеством ошибок в терминале, как missing Vimeoclientи много attributeerrors. Хорошо, посмотрим, будет ли это иметь какое-либо влияние, работая с ним.


0

У меня была та же проблема, и я исправил ее, проверив, что такое версия pip ( pip3 --version), а затем понял, что я печатаю python<uncorrect version> filename.pyвместоpython<correct version> filename.py


-13

Возможно, вам не хватает заголовков python для сборки pil. Если вы используете Ubuntu или лайки, это будет что-то вроде

apt-get install python-dev

Какую архитектуру вы используете, если вы используете 64-битную систему для мира боли. Используйте 32-битную версию и используйте неофициальную предварительно скомпилированную версию отсюда
Crankyadmin

Это 32-битная, я установил это несколько раз, но на этот раз у меня есть эта проблема
Asma Gheisari
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.