无法导入名称 'PdfFileReader'

cannot import name 'PdfFileReader'

这个错误是什么意思?我应该安装一些东西吗?

    from pdf import PdfFileReader, PdfFileWriter
ImportError: cannot import name 'PdfFileReader'

我在编译以下脚本时得到它:

import sys

if __name__ == '__main__' and len(sys.argv) > 5 and sys.argv[1][-3:].upper() == 'PDF':
  original = sys.argv[1]
  target   = original[:-4] + '.cropped.pdf'
  left     = int(sys.argv[2])
  top      = int(sys.argv[3])
  right    = int(sys.argv[4])
  bottom   = int(sys.argv[5])

  from pyPdf import PdfFileWriter, PdfFileReader
  pdf = PdfFileReader(file(original, 'rb'))
  out = PdfFileWriter()
  for page in pdf.pages:
    page.mediaBox.upperRight = (page.mediaBox.getUpperRight_x() - right, page.mediaBox.getUpperRight_y() - top)
    page.mediaBox.lowerLeft  = (page.mediaBox.getLowerLeft_x()  + left,  page.mediaBox.getLowerLeft_y()  + bottom)
    out.addPage(page)    
  ous = file(target, 'wb')
  out.write(ous)
  ous.close()

else:
  print ('EXAMPLE: pdfcrop.py original.pdf 20 30 20 40')

解法: pyPdf 库已过时,无法按预期工作。使用 PyPDF4 库修复了过时库造成的所有问题。

错误ImportError: cannot import name 'PdfFileReader' 表示存在导入错误。

正在安装 pip

Pip 是 Python 的软件包安装程序,需要安装 Python 个软件包。

  1. 如果您使用的是 Python 3.4 以上版本,请不要担心; pip 已预先安装。
  2. 如果你使用的Python3版本早于Python3.4,那么可以找到官方的pip安装说明here
  • 注意:您可以通过在终端
  • 中输入python --version来查看您运行的Python版本

正在安装 PyPDF4

安装 pip 后,您现在可以安装 PyPDF4 包。这就像在您的终端中输入 pip install pdf 一样简单。

完成此操作后,您将成功为 Python 安装 PyPDF4 包。

其他错误来源

但是,您很可能已经安装了该软件包。您的错误也可能是您试图从不存在的库中导入函数,或者库本身包含错误。