【问题标题】:load_resource function not found as a class method of FPDF未找到作为 FPDF 的类方法的 load_resource 函数
【发布时间】:2020-04-23 20:46:46
【问题描述】:

我正在查看以下问题的答案:Insert Base64 image to pdf using pyfpdf

这里建议的答案是覆盖现有的load_resource 方法。

我所做的是

class EnhancedPdf(FPDF):

    def load_resource(self, reason, filename):
        if reason == "image":
            if filename.startswith("data"):
                f = filename.split("base64,")[1]
                f = base64.b64decode(f)
                f = BytesIO(f)
                return f
            else:
                return super().load_resource(reason, filename)

但是,Pycharm 突出显示超级调用,并显示消息“类“FPDF”的未解析属性引用“load_resource”

在我的命令行中,我运行了命令

from fpdf import FPDF
   dir(FPDF)

查看这个列表,我看到load_resource 函数确实不是一个列出的方法。因此我的问题是为什么load_resource 函数不可见?

【问题讨论】:

  • 也许您正在使用不同版本的 pyfpdf,其中 load_resource() 不再存在。
  • 你使用的是 Python 2 还是 Python 3 ?
  • 在最新版本中肯定有 def load_resource(self, reason, filename) 在第 1774 行
  • @ChrisDoyle 我想我正在使用最新版本。我几天前使用 pip 安装了。版本号 1.7.2
  • @Cucu 我需要卸载旧的 fpdf 包吗?

标签: python fpdf class-attributes


【解决方案1】:

您很可能正在使用 Python 3.x,其中 x >= 5 。

在 pypi 上它说该模块仅对 python 3.y 提供实验性支持,其中 y

用 python 2.7 试试,它可能会工作。

PS:最好试试https://pypi.org/project/fpdf2/,更新版本。有关错误或问题,请参阅https://github.com/alexanderankin/pyfpdf

如果你真的想使用旧版本,你可以像这样从原始仓库安装你想要的任何版本

pip install git+https://github.com/reingart/pyfpdf@<branchname of tag or commit> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-26
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2021-03-16
    • 1970-01-01
    • 2013-08-25
    相关资源
    最近更新 更多