【问题标题】:PIL: DLL load failed: specified procedure could not be foundPIL:DLL 加载失败:找不到指定的程序
【发布时间】:2017-09-02 01:12:30
【问题描述】:

我已经开始在 Python 中处理图像,我想开始使用 PIL(Pillow)。为了安装它,我运行了pip install Pillow。安装时,之前未安装 PIL。我也尝试卸载它并重新安装它,以及使用pip3 install Pillow

当我在 Python 中运行它时,我的第一行是:

File "C:\Program Files\Python36\lib\site-packages\PIL\Image.py", line 56, in <module>
from . import _imaging as core
ImportError: DLL load failed: The specified procedure could not be found.

我查看了目录,发现PIL文件夹下有_imaging.cp36-win_amd64.pyd文件。

如果需要的 DLL 存在,为什么会发生这种情况?我该如何解决?

【问题讨论】:

  • 如果将 _imaging.cp36-win_amd64.pyd 重命名为 _imaging.pyd 会发生什么?
  • 我试过这样做,但没有帮助。我收到了和以前一样的错误。
  • 您运行的 Win 版本是什么(我怀疑与架构不匹配有关)?
  • 像在 Windows 中一样赢吗?我正在运行 10.0.14393

标签: python python-imaging-library pillow


【解决方案1】:

我在使用 Python 3.6 时也遇到了这个问题。我只是通过卸载枕头(4.1.0)然后安装旧版本的枕头(4.0.0)来避免这个问题。旧版本似乎可以正常运行。

【讨论】:

  • 卸载 4.1.0 并执行 pip install Pillow==4.0.0 对我有用 python 3.6.0, windows 10
  • 你解决了我的一天!在 Win10 和 python 3.6.0 中为我工作
  • 一样!从 4.0.0 升级到 4.1 会破坏一切是不正常的。应该有某种测试或其他检查。
  • Pillow 4.1.1 现已推出,可用于 Python 3.6.0 和 3.6.1。更多信息:stackoverflow.com/a/43723021/724176
  • 我现在对 python 3.6.3 和枕头 4.2.1 和 4.3.0 有同样的问题。降级到 4.1.1 解决了这个问题。
【解决方案2】:

正如肖恩的回答,我不得不卸载(我正在使用 Anaconda Python 3.6,顺便说一句)

conda uninstall pillow

我用 PIL 试过,但没有这样的包。卸载枕头也意味着卸载依赖它的软件包,在我的例子中是“anaconda-navigator”和“scikit-image”。在我用

重新安装 Pillow 4.0.0 之后
 conda install pillow=4.0.0

并用它测试过

python -c "from PIL import Image"

如果成功,您不会看到错误消息,我重新安装了与 Pillow 4.1.0 一起卸载的软件包。

conda install anaconda-navigator
conda install scikit-image

【讨论】:

  • 这对我不起作用。使用 Windows 10 和 Python 3.5
  • 在 Win10 上使用 Python 3.5 和 conda 环境。我用 conda 卸载了枕头,用 pip 重新安装了枕头。然后用 pip 重新安装 scikit-image,用 conda 重新安装 anaconda-navigator(不依赖安装'--no-deps')。
【解决方案3】:

根据this GitHub discussion,通过将 Python 升级到 3.6.1 也可以解决此问题。

不同之处在于 Pillow 4.1.0 是使用 Python 3.6.1 构建的,而 Pillow 4.0.0 是使用 Python 3.6.0 构建的。

显然,Python 3.6.0 中的 PYTHON36.DLL 缺少使用 Python 3.6.1 构建时使用的函数(PySlice_AdjustIndicesPySlice_Unpack)。

解决方案是升级到 Python 3.6.1。

【讨论】:

  • Pillow 4.1.1 现已推出,可用于 Python 3.6.0 和 3.6.1。更多信息:stackoverflow.com/a/43723021/724176
  • 运行 Python 3.6.4/Win64 conda install pillow=4.1.1 终于成功了。无需事先卸载。
【解决方案4】:

这适用于我使用 win10 和 py 3.6。 只需卸载 Pillow 4.1.0 pip3卸载枕头 然后安装枕头 4.0.0 pip3 install Pillow==4.0.0

【讨论】:

    【解决方案5】:

    Python本身存在问题,这意味着使用Python 3.6.1(如枕头4.1.0)的二进制车轮构建,不会在Python 3.6.0上安装。

    这已经影响了许多Python库。

    然而,有新的枕头4.1.1发布在此过程中,您现在可以更新到枕头4.1.1,并使用Python 3.6.0和3.6.1。

    更多信息:

    【讨论】:

      【解决方案6】:

      我对anaconda 5.0.1有同样的问题,在Windows 10上用Caffe使用它。我刚刚做了

      conda install PIL

      它对我有用。

      【讨论】:

        【解决方案7】:

        如果您使用的是 Anaconda,请尝试

        conda uninstall pillow 然后pip install pillow

        在 Windows 10 (Anaconda 4.5) 上使用 Caffe2 时遇到了这个问题,这对我有用。这是关于这个问题的github post

        【讨论】:

          【解决方案8】:

          tensorflow 1.12.0 +Python 3.6.0 + win10 似乎存在一些问题

          使用 conda tensorflow 工作正常。

          以下步骤适用于 pip tensorflow。

          卸载张量流 用 3.6.1 替换你的 python 版本 安装最新版本的 tensorflow(1.13.0)

          要安装 Tensorflow,请点击以下链接:- https://www.tensorflow.org/install/pip

          【讨论】:

            【解决方案9】:

            先卸载现有版本

            pip uninstall pillow
            

            然后尝试安装

            pip install pillow==4.0.0
            

            【讨论】:

            • 3.5 年后发布与接受的答案相同的答案有什么意义? (其他一些也包括此信息)
            【解决方案10】:

            如果您是 Windows 用户并且没有 Microsoft Visual C++,则会出现错误。我遇到了同样的错误,并通过安装 Microsoft Visual C++ 解决了这个问题。下载链接可以在这里找到。

            https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0

            【讨论】:

              猜你喜欢
              • 2020-10-02
              • 2020-10-13
              • 2020-08-05
              • 2019-02-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-11-16
              • 1970-01-01
              相关资源
              最近更新 更多