为啥 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
是否包含VERSION
、PILLOW_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.py 和 ImageTk.py: /Users/yourComputerName/AppData/Local/Programs/Python/Python36/Lib/PIL 在 windows 到您的项目目录,然后将它们导入!
【讨论】:
更改 PYTHONPATH 比复制这些文件不是更好吗? 只有这个库不起作用。之后就不能使用其他库了!【参考方案13】:您导入的任何库/包都必须在同一 python 目录中具有其依赖项和从属部分。如果你在 linux 中
Python3.x -m pip install <your_library_name_without_braces>
发生的情况是,它安装在默认的 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 获取字符串?