python - 为什么我的exe脚本这么重?(安装程序)
问题描述
我使用的库:
import os, sys
import subprocess
import shutil
from docx import *
from django.utils.encoding import smart_text
import xlrd
from pdfminer import *
import textract
import pandas as pd
from pptx import Presentation
from tika import parser
我能做些什么来减少 exe 的大小?我的规格文件:
a = Analysis(['tryhard.py'],
pathex=['C:\\poppler-0.67.0\\bin'],
binaries=[],
datas=[],
hiddenimports=['textract.parsers.txt_parser', 'textract.parsers.pdf_parser', 'textract.parsers.docx_parser', 'textract.parsers.odt_parser', 'pandas._libs.tslibs.timedeltas'],
hookspath=[],
runtime_hooks=[],
excludes=['numpy'],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
命令pyinstaller -F --clean --onedir myspecfile.spec
生成 3 个 4GB 大小的文件夹。
解决方案
在生成的文件夹中查找您不需要的东西,然后在excludes
规范文件的行中指定它们。例如,我不使用 Tcl、Tk 或 Tkinter,所以我excludes
看起来像:
excludes=['FixTk', 'tcl', 'tk', '_tkinter', 'tkinter', 'Tkinter'],
Pyinstaller 包括厨房水槽,以防万一。您可以确定不需要的任何内容都可以使用excludes
. 这将减小大小(我的单文件应用程序的最终大小是 63MB)。
这是一个类似的问题excludes
。
推荐阅读
- python - kivy中的文件选择器没有类
- concurrency - Erlang 并发编程
- javascript - 这种类型的变换叫什么?
- azure - Azure 集成运行时跨服务利用率
- javascript - 在 HTML 的 Javascript 函数中附加嵌套元素
- java - 为什么我可以使用 get 和 add 函数更新哈希映射列表值?
- python - 为什么迭代变量在 Python3 中没有“return”或“yield”而改变
- sql - 如何在 AWS Athena Json 查询中使用 WHERE 子句?
- javascript - 如何在 vue 中导入 mathjax 作为本地依赖项?
- kubernetes - 对 Kubernetes 中的发布服务有疑问