当pyinstaller与Python 3.6中的pdfminer模块一起使用时,为什么会创建一个巨大的exe文件?

时间:2020-01-15 08:09:05

标签: pyinstaller pdfminer

我尝试从使用pdfminer模块的脚本中使用pyinstaller(在Python 3.6中)创建exe文件,但创建的exe文件很大,大约240 MB 。相比之下,在Python 2.7中使用pyinstaller和类似的脚本时,创建的exe文件大约只有10 MB。

我做错了什么?

我使用以下命令创建exe文件: pyinstaller.exe --onefile {文件名/路径}

我的代码:

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

...

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = io.StringIO()
    #codec = 'windows-1250'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, laparams=laparams)
    fp = open(path, 'rb')
    # reply = s.get(path, stream=True, verify= False)
    # fp = StringIO()
    # fp.write(reply.content)
    # fp.seek(0)
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos = set()

    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password, caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

    fp.close()
    device.close()
    retstr.close()
    return text

...

1 个答案:

答案 0 :(得分:0)

我找到了以下解决方案:

  1. 创建了虚拟环境
  2. 通过pip仅安装了所需的软件包(即pdfminer和pyinstaller)。

现在生成的exe文件只有7.8 MB。