【问题标题】:how to use reportlab with google app engine如何将reportlab与谷歌应用引擎一起使用
【发布时间】:2014-03-24 09:59:07
【问题描述】:

我无法在 google app 引擎下正确导入 reportlab。根据以下guide(以及网络上的其他几个地方):

“你所要做的就是下载它并将'reportab'目录复制到你的应用程序的根目录中。”

当我这样做时(我从here 下载reportlab-3.0.zip)并将其解压缩到我的应用程序的根目录中,因为我尝试使用以下行导入reportlab:

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4

我收到导入错误

ImportError: No module named reportlab.pdfgen

我尝试谷歌搜索但无济于事。对此的任何帮助将不胜感激,因为我不确定我还能尝试什么。非常感谢!


我尝试的另一件事是将下载的 zip 的 src 目录中的内容复制到我的应用程序的根目录下,但这也不起作用。我得到的错误是:

ImportError: Cannot re-init internal module __main__

似乎 2.7 版可以导入,只有 3.0 版有问题

【问题讨论】:

  • 注意 appengine 不支持 python 3.0。 Python 2.7 是目前唯一受支持的版本。 Python 2.5 已被弃用。

标签: python google-app-engine reportlab


【解决方案1】:

如果您只是将 reportlab zip 解压缩到应用程序的根目录中,则它不会工作,因为 reportlab zip 用于使用 setup.py 进行本地设置,而您不会在 appengine 中使用它。

您应该查看 zip 内部的 src 目录,里面是一个 reportlab 目录 - 在我的情况下,zip 文件的内容将是 reportlab-3.0/src/reportlab 复制/移动这个 reportlab 目录到您的应用程序的根级别。

您可能还应该阅读有关导入和模块在 python 中的工作原理。如果您对此很熟悉,则可以通过查看 zip 内容的结构自行解决。

如果您想使用图像,还要注意先决条件。如果你这样做,你需要在本地安装 PIL,并在 app.yaml 中启用它,但是你不需要部署 PIL 代码。您可以在 appengine 第 3 部分库文档中了解更多相关信息。

【讨论】:

    【解决方案2】:

    在命令pip install reportlab之后检查reportlab安装的目标路径,然后在python项目的根目录下链接reportlabln -s /usr/lib/python2.7/dist-packages/reportlab

    【讨论】:

      【解决方案3】:

      您需要移动到 lib 的父目录。然后你可以使用这个命令安装reportlab:

      pip install -t lib reportlab
      

      【讨论】:

        猜你喜欢
        • 2015-08-03
        • 1970-01-01
        • 2014-10-14
        • 2013-05-28
        • 1970-01-01
        • 2019-07-30
        • 2011-08-03
        • 1970-01-01
        • 2023-03-15
        相关资源
        最近更新 更多