【问题标题】:Unable to find the Python PIL library.Google App Engine找不到 Python PIL 库。Google App Engine
【发布时间】:2017-07-19 04:03:56
【问题描述】:

安装了 Google App Engine SDK.Python 2.6 完美。 想进入图像,并在本地测试。安装 PIL

安装 Python,然后运行 ​​PIL 安装,这次成功了。

看起来不错,但尝试进行本地主机图像处理 给出:

"NotImplementedError: Unable to find the Python PIL library.  Please
 view the SDK documentation for details about installing PIL on your system."

系统:winxp

【问题讨论】:

    标签: python google-app-engine python-imaging-library


    【解决方案1】:

    我花了一段时间才让 PIL 工作。主要是因为我忘了告诉应用引擎在yaml文件中加载它:

     libraries:
         - name:    PIL
         version: 1.1.7
    

    也许这一步很明显,但我没有在 google 文档中看到它有很好的记录,我在这里发现了各种消息,指出 PIL 在应用程序引擎上不可用。我想确认 PIL 正在应用引擎上运行。

    【讨论】:

    • 我还在全球范围内运行了pip install Pillow,连同上述内容,现在一切正常! :) 我在GAE Images Python API Overview 上找到了这个。看代码sn-p下的★ Note
    【解决方案2】:

    我们可能需要更多信息,所以这里有一些问题和尝试。

    您是如何尝试访问 PIL 的?您是尝试使用 google.appengine.api.images 模块,还是直接使用 PIL?听起来像前者,但不清楚。

    你关注the App Engine instructions了吗?

    邮政编码,如果可以的话。

    也许是最重要的尝试:看看您是否可以从非 App Engine 脚本中使用 PIL。只需编写一个快速的 Python 脚本来访问它,看看它是如何进行的。比如:

    import Image
    im = Image.open('filename.png')
    im.show()
    

    如果这不起作用,Google App Engine 不能与 PIL 一起使用也就不足为奇了。

    【讨论】:

    • 代码:import Image // Appengine 脚本错误 : No module named Image
    • 这表明 PIL 没有正确安装。它要么不存在,要么不在 Python 的模块搜索路径上。如果您不经常操纵 Python 搜索路径,我建议您删除 PIL 并重新安装它,小心注意沿途弹出的任何错误
    • //原代码 import Image im = Image.open('filename.png') im.show() ///////// 错误 : 没有名为 Image 的模块
    • 是的,PIL 没有正确安装。您应该在 Python 安装目录下有一个名为 Lib\site-packages 的目录。这应该包含一个名为PIL.pth 的文件。检查其内容并查看它是否指向包含Image.py 的目录。如果这些事情中的任何一个都不正确,那么您最好的选择可能是重新安装。或者你可以重新安装......
    • GAE SDK在本地使用PIL,但不允许直接使用PIL。应改为使用 SDK Image API。 GAE 仅提供部分 PIL 功能。
    【解决方案3】:

    据我所知,Google AppEngine 不允许直接使用 PIL,而是提供有限的Images API

    它可以调整大小/旋转/裁剪和翻转图像。 Picasaweb 或多或少可以做些什么。但它无法创建新图像或执行复杂的操作,例如添加文本、绘图等。

    【讨论】:

    • 自 2.7 版本以来已修复此问题。我的同事能够成功使用 PIL,就好像它是应用引擎上的标准发行版一样。
    【解决方案4】:

    在带有 python2.5 的 Ubuntu 上,以下帮助:

    新仓库:ppa.launchpad.net/fkrull/deadsnakes/ubuntu

    sudo apt-get install python2.5 python2.5-dev libjpeg62 libjpeg62-dev

    解压:http://effbot.org/media/downloads/Imaging-1.1.6.tar.gz

    cd Imaging-1.1.6

    编辑 setup.py 第 38 行:JPEG_ROOT = libinclude("/usr/lib")

    sudo python2.5 setup.py 安装

    完成

    【讨论】:

    • 这不适用于 App Engine。
    • 它有,但是 Ubuntu 发生了一些变化。
    【解决方案5】:

    对于 OSX 10.11.6 和 Python 2.7.13,除了 Pillow 之外,我还需要安装 pyyaml 全局,以便启动的 API 服务器能够接收它们:

    sudo pip install Pillow pyyaml
    

    在此之后,我必须专门将 PIL 版本 1.1.7 添加到 app.yaml 库中,即使 Pillow 版本不是 1.1.7

    libraries:
    - name: PIL
      version: 1.1.7
    

    此评论更详细地描述了我发现我缺少 yaml 库的方式:

    PIL cannot be found

    【讨论】:

      【解决方案6】:

      如果您清除 GAE 日志窗口(假设您正在使用启动器)然后重新启动服务器,您可能会在日志中看到一些内容。就我而言,我得到了

      警告 2011-01-27 21:04:11,856 dev_appserver.py:3698] 无法初始化图像 API;您可能缺少 Python “PIL” 模块。 ImportError:dlopen(/Library/Python/2.6/site-packages/PIL/_imaging.so,2):找不到符号:_jpeg_resync_to_restart 引用自:/Library/Python/2.6/site-packages/PIL/_imaging.so

      所以我可以说我与 JPEG 库的链接不够好。

      【讨论】:

        【解决方案7】:

        我在 Windows 机器上遇到了同样的问题,然后我在 App Engine Docs 中注意到了:

        注意:除了图像 API,您还可以使用转换 在 Python 2.7 应用程序的 Python Imaging Library (PIL) 中提供。 您只需在库的库部分中声明库 app.yaml 文件。但是,如果您希望在本地使用 PIL 环境(使用开发服务器)你还必须download and install PIL或本地枕头。

        所以只需download PIL 就可以了。

        【讨论】:

          猜你喜欢
          • 2017-07-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-25
          • 2019-07-10
          • 2011-03-18
          • 2010-11-05
          • 1970-01-01
          相关资源
          最近更新 更多