为啥 Python 不能从 PIL 导入图像?

Posted

技术标签:

【中文标题】为啥 Python 不能从 PIL 导入图像?【英文标题】:Why can't Python import Image from PIL?为什么 Python 不能从 PIL 导入图像? 【发布时间】:2014-12-17 19:33:14 【问题描述】:

我试图运行的单行如下:

from PIL import Image

这看起来很简单,但它给出了一个错误:

Traceback (most recent call last):
  File "C:\...\2014-10-22_12-49.py", line 1, in <module>
    from PIL import Image
  File "C:\pyzo2014a\lib\site-packages\PIL\Image.py", line 29, in <module>
    from PIL import VERSION, PILLOW_VERSION, _plugins
ImportError: cannot import name 'VERSION'

如果这有帮助,我在运行之前从https://pypi.python.org/pypi/Pillow/2.6.1(文件Pillow-2.6.1.win-amd64-py3.4.exe)安装了枕头(在此之前已经安装了som PIL,我将其卸载)。该脚本在 Python 版本 3.4.1 的 Pyzo 中运行。

出了什么问题,如何导入Image

【问题讨论】:

也许尝试重新安装?或者查看 Image.py 源代码,您可能会看到导致问题的原因.. @Totem 尝试重新安装,什么也没做。我确实在源代码中看到了第 (29) 行,但不知道它是如何导致问题的。 您能否检查C:\pyzo2014a\lib\site-packages\PIL\__init__.py 是否包含VERSIONPILLOW_VERSION 等常量?作为记录,我的__init__.py 是 58 行长,相同 (2.6.1) Pillow 版本。 @Evert 第 14 行和第 15 行是 VERSION = '1.1.7'PILLOW_VERSION = '2.6.1',这些似乎是唯一的常量。这里也有 58 行。 那么我认为 python 很可能仍然会在您的 PYTHONPATH 上获取另一个 PIL。试试python3.4 -c "import PIL; print(PIL.__file__)" 【参考方案1】:

我有同样的错误。这是我的工作流程。我首先使用

安装了 PIL(不是 Pillow)
pip install --no-index -f https://dist.plone.org/thirdparty/ -U PIL

然后我找到了 Pillow 并使用它安装了它

pip install Pillow

解决我的问题的是卸载两者并重新安装 Pillow

pip uninstall PIL
pip uninstall Pillow
pip install Pillow

【讨论】:

卸载并重新安装也为我修复了 pip3。真奇怪…… 谢谢!在尝试解决此错误 2 小时后,您救了我。 实际上只是第一行解决了我的问题。 GAE(在 app.yaml 中)需要 PIL 而不是 Pillow。谢谢。 pip install Pillow 对我来说已经足够了,谢谢! 我收到以下错误,该错误太大,无法在此处发布,但可以在此处找到 https://github.com/OlafenwaMoses/ImageAI/issues/171【参考方案2】:

我有同样的问题,并这样做来解决它:

    在命令提示符下

    pip install Pillow ##
    

    确保你使用

    from PIL import Image
    

Image 中的I 必须是大写字母。这就是我的问题。

【讨论】:

【参考方案3】:

FWIW,当我遇到同样的错误时,以下内容对我有用:

pip install --upgrade --force-reinstall pillow

【讨论】:

【参考方案4】:

如果你使用Anaconda,你可以试试:

conda install Pillow

Example

【讨论】:

【参考方案5】:

对我来说,我输入的图像是小写的“i”而不是图像。所以我做了:

from PIL import Image不是from PIL import image

【讨论】:

【参考方案6】:

所有答案都很棒,但对我来说是卸载 Pillow 的组合

pip uninstall Pillow

然后安装您需要的任何软件包,例如

sudo apt-get -y install python-imaging
sudo apt-get -y install zlib1g-dev
sudo apt-get -y install libjpeg-dev

然后使用easy_install重新安装Pillow

easy_install Pillow

希望这对其他人有所帮助

【讨论】:

你会得到一颗金星。这终于为我解决了!谢谢! 超级英雄!我整晚都在调试这个废话,谢谢你救了我。【参考方案7】:

当前的免费版本是 PIL 1.1.7。此版本支持 Python 1.5.2 和更新版本,包括 2.5 和 2.6。稍后会发布 3.X 版本。

Python Imaging Library (PIL)

你的python版本是3.4.1,PIL不支持!

【讨论】:

这是 Pillow,PIL 的一个分支,支持 Python 3。【参考方案8】:

从命令行安装 Pillow:

python -m pip install pillow

【讨论】:

【参考方案9】:

在 Ubuntu 操作系统中,我使用以下命令解决了这个问题

pip install Pillow
apt-get install python-imaging

对不起,不要问我为什么,这取决于我;-)

【讨论】:

【参考方案10】:

在使用已弃用枕头代码的 pytorch 代码时出现相同的错误。由于 PILLOW_VERSION 已被弃用,我通过以下方式解决了它:

只需复制 _version 文件并将其重命名为同一文件夹中的 PILLOW_VERSION.py。

为我工作

【讨论】:

【参考方案11】:

from PIL import Image, ImageTk

【讨论】:

【参考方案12】:

如果你做了所有,但它没有像 mien 一样再次起作用,请执行此操作 在 ubuntu 和 C 上从 /usr/lib/python3/dist-packages/PIL 复制 Image.pyImageTk.py: /Users/yourComputerName/AppData/Local/Programs/Python/Python36/Lib/PIL 在 windows 到您的项目目录,然后将它们导入!

【讨论】:

更改 PYTHONPATH 比复制这些文件不是更好吗? 只有这个库不起作用。之后就不能使用其他库了!【参考方案13】:

您导入的任何库/包都必须在同一 python 目录中具有其依赖项和从属部分。如果你在 linux 中

Python3.x -m pip install &lt;your_library_name_without_braces&gt;

发生的情况是,它安装在默认的 python 上。所以首先要确保你的电脑上只有 1 个 python 2.x 和 1 个 python 3.x 版本。

如果你想成功安装matplotlib 你需要这些行,

python -m pip install matplotlib pillow numpy pandas

最后两个是辅助库,必须有。

【讨论】:

【参考方案14】:

什么对我有用:

去吃货店

C:\Users\YOUR PC USER NAME\AppData\Local\Programs\Python\Python37-32\Lib\site-packages 

然后删除或更改 PIL 文件夹的名称并完成。

跑完后必须这样做

pip uninstall PIL

正如其他建议对我产生的影响

WARNING: Skipping PIL as it is not installed.

但我不确定删除该库的后果,所以如果我因此遇到问题,我会编辑这篇文章。

【讨论】:

【参考方案15】:

我遇到了同样的问题,枕头在 anaconda 中安装了 environment.yml

我很快了解到 pip 和 setuptools 必须始终是最新的,否则我会遇到问题。在安装包之前始终更新这些工具。对于任何包导入问题,请卸载包升级列出的工具(甚至可能是您的基础环境)并重新安装。

conda uninstall pillow
python -m pip install pip --upgrade
pip install setuptools --upgrade
pip install pillow

如果使用 Anaconda,在安装包/环境之前,首先从基础环境运行以下命令:

conda update conda

修复此问题不需要更新基本环境,但这是避免类似问题的好习惯

@theeastcoastwest 在他们的回答中谈到了点子升级,但我觉得需要更多信息

【讨论】:

【参考方案16】:

现在,我实际上和我的兄弟做了一些调试,发现需要初始化 Pillow (PIL)。我不知道如何初始化它,所以你可能会坚持重新安装 Pillow。

【讨论】:

【参考方案17】:

如果你有不同的 Python 版本,一定要安装它的版本,你启动脚本:

python3.9 -m pip install pillow --upgrade

经过大量谷歌搜索和不同的解决方案,我发现这是最有效的。

【讨论】:

【参考方案18】:

尝试import PIL 而不是from PIL import image

【讨论】:

以上是关于为啥 Python 不能从 PIL 导入图像?的主要内容,如果未能解决你的问题,请参考以下文章

为啥不能用 PIL 和 pytesseract 获取字符串?

如何从 PIL 图像创建 OpenCV 图像?

TypeError:“图像”对象不能使用 PIL 进行下标

Pillow处理图像模块

为啥我不能在 Anaconda 之外导入 Python 模块?

Python 3 的图像库