【问题标题】:Could not import PILLOW_VERSION from PIL无法从 PIL 导入 PILLOW_VERSION
【发布时间】:2020-04-26 18:34:12
【问题描述】:

导入时,Python (Anaconda) 出现以下错误:

ImportError: cannot import name 'PILLOW_VERSION' from 'PIL'

我尝试删除pillow,然后删除conda install,但错误仍然存​​在。

【问题讨论】:

  • 使用 PIL.__version__ 代替。
  • @abhilb 我正在导入torchvision,它调用的是PILLOW_VERSION
  • 好的。然后可能检查您拥有的 PIL 版本和 torchvision 所需的版本。可能存在不匹配。 PILLOW_VERSION 在最新版本的 PIL 中已弃用
  • 可能你将不得不降级枕头版本
  • 或者升级torchvision。

标签: python anaconda python-imaging-library


【解决方案1】:

Pillow 7.0.0 删除了PILLOW_VERSION,您应该在自己的代码中使用__version__


编辑(2020-01-16):

如果使用 torchvision,此问题已在 v0.5.0 中修复。修复:

  1. 需要torchvision>=0.5.0
  2. 如果 Pillow 被暂时固定,请移除固定针

旧信息(2020-01-09):

如果使用 torchvision,本周(2020 年第 2 周)计划发布一个版本来修复它:

选项有:

  • 等待新的torchvision发布
  • 使用torchvision的主版本(例如pip install -U git+https://github.com/pytorch/vision
  • 从 nightly 版本安装 torchvision,这也需要 nightly 版本的 pytorch
  • 或安装Pillowpip install "pillow<7")

【讨论】:

    【解决方案2】:

    我已经通过修改错误消息中提到的functional.py__init__.py 解决了。Error

    functional.py 中的from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSION 修改为from PIL import Image, ImageOps, ImageEnhance, __version__ 大约第5 行。

    __init__.py 中的PILLOW_VERSION = __version__ = _version.__version__ 修改为__version__ = __version__ = _version.__version__,大约第22 行。

    文件路径:

    • functional.py:C:\Users\UserName\AppData\Local\Programs\Python\Python37\Lib\site-packages\torchvision\transforms\functional.py

    • __init__.py:C:\Users\UserName\AppData\Local\Programs\Python\Python37\Lib\site-packages\PIL\__init__.py

    【讨论】:

    • 这对我有用...我刚刚将 PILLOW_VERSION 替换为 __version__ functional.py at : Your_File_Path\Lib\site-packages\torchvision\transforms\functional.py 然后没有错误。
    • 这对我有用。没有其他工作。那些 2 小时的噩梦之一。
    【解决方案3】:

    如果您不需要最新功能,请降级枕头

    pip install pillow<7
    

    或者对于蟒蛇,

    conda install -c anaconda pillow<7
    

    【讨论】:

    【解决方案4】:
    • 目前使用的是 torchvision==0.4.2,这解决了我的问题。
    • 将您的枕头降级到 6.1 并重新启动您的 Jupyter 笔记本。

      使用这个

      conda install pillow=6.1

    【讨论】:

      【解决方案5】:

      我找到了另一个很好的解决方案: 安装 Pillow-SIMD 而不是 Pillow。

      Pillow-SIMD 是“跟随”Pillow。 Pillow-SIMD 版本为 100% 相同版本的 Pillow 的兼容插入式替代品。 SIMD代表“单指令多数据”,其本质是 在对多个数据点执行相同的操作时 通过使用多个处理元素同时进行。

      主页: https://github.com/uploadcare/pillow-simd

      基准: https://python-pillow.org/pillow-perf/

      安装说明:

      $ pip uninstall pillow
      $ CC="cc -mavx2" pip install -U --force-reinstall pillow-simd
      

      我检查了:它没有这样的错误并且可以在 Pytorch/Torchvision 上运行。

      您无需降级软件包或更改源代码。

      【讨论】:

        【解决方案6】:

        这是我对错误的修复

        Error: Could not import PILLOW_VERSION from PIL
        OS: Linux 18.0 (LUBUNTU)
        Python: 3.6
        

        通过降级枕头解决了这个问题:

        pillow: 7.0.0-py36hb39fc2d_0 --> 6.1.0-py36h34e0f95_0
        command: conda install pillow=6.1
        

        【讨论】:

          猜你喜欢
          • 2021-03-07
          • 1970-01-01
          • 2021-08-31
          • 2019-12-03
          • 2020-12-01
          • 1970-01-01
          • 2023-01-09
          • 2019-08-13
          • 2022-01-09
          相关资源
          最近更新 更多