【问题标题】:ModuleNotFoundError: No module named 'xhtml2pdf' under Google App EngineModuleNotFoundError:Google App Engine 下没有名为“xhtml2pdf”的模块
【发布时间】:2020-12-20 01:33:11
【问题描述】:

Google App Engine 的新手。 完全使用 Google Cloud Shell 构建 - 主要是在进行认真开发之前学习该平台。 完成了所有可能的未来要求,除了在网页上显示图表和下载 PDF。这个问题是关于下载PDF的

我新建一个文件夹 PDF

在 appengine_config.py 下我添加:

vendor.add('pdf')

我运行命令:

pip install -t pdf/ xhtml2pdf

我收到一条错误消息:

ipython 5.10.0 has requirement prompt-toolkit<2.0.0,>=1.0.4, but you'll have prompt-toolkit 2.0.10 which is incompatible.

我创建了一个 PDFHandler.py 类,代码开头为:

from io import StringIO
from xhtml2pdf import pisa

我编写其余代码并使用 python3 main.py 运行应用程序,我得到错误:

ModuleNotFoundError: No module named 'xhtml2pdf'

我错过了什么? 有没有更好的方法来下载自定义 PDF?

【问题讨论】:

  • ipython对prompt-toolkit版本的需求,与mssql-cli 1.0.0的需求有冲突,需求prompt-toolkit=2.0.0。所以我忽略了可能有贡献的那部分?

标签: python google-app-engine flask google-cloud-platform google-cloud-shell


【解决方案1】:

我能够通过从 Cloud Shell 运行 pip install -t pdf/ xhtml2pdf 来重现您的问题,因为出现了以下错误:

成功构建xhtml2pdf pyPdf2 ipython 5.10.0 要求 prompt-toolkit=1.0.4,但您将拥有不兼容的 prompt-toolkit 2.0.10。 安装采集包:webencodings、六、html5lib、pyPdf2、Pillow、reportlab、xhtml2pdf ...

如果您按照 this 文档在 Cloud Shell 上创建虚拟环境并使用以下命令 pip3 install -t pdf/ xhtml2pdf --upgrade 安装所需的依赖项(或者通常创建一个 requirements.txt 文件,在此处添加必要的依赖项并运行pip3 install -r requirements.txt) 你应该不会再看到上面描述的提示了。

另外,我不建议将 Cloud Shell 用作开发环境,因为它是一种用于快速原型设计和测试的工具。

一般来说,请参考following documentation设置Python开发环境。

如果您的应用程序需要一些 PDF 处理,我建议您探索使用 App Engine 灵活环境,将您的 PDF 处理所需的特定依赖项安装在一个单独的服务中,您的主应用程序可以通过 HTTP 调用该服务。查找有关此here 的更多信息。

【讨论】:

    猜你喜欢
    • 2020-09-08
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多