Kivy PyInstaller 在 Linux 中非常大的包大小
Posted
技术标签:
【中文标题】Kivy PyInstaller 在 Linux 中非常大的包大小【英文标题】:Kivy PyInstaller very large package size in Linux 【发布时间】:2018-06-30 02:21:21 【问题描述】:我正在尝试使用 PyIntaller 为 linux 打包大约 2kb 大小的代码,包大小几乎是 250mb,根据代码没有什么特别的导入。如何减小这个尺寸?我是包装我尝试过的所有其他代码的新手,具有相同的包装大小,这是我的导入。
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Color, Line
from kivy.uix.floatlayout import FloatLayout
import math
from math import cos, sin, pi
from kivy.clock import Clock
from kivy.lang import Builder
from kivy.properties import NumericProperty
import datetime
【问题讨论】:
你用 Anaconda 安装 Python 了吗? 不,我使用的是系统python3.5 你能告诉我pip list
的输出吗?
pip 列表太长,无法在评论中提及,
你的 /dist 文件夹中有一些 libmkl*.so 吗?
【参考方案1】:
您可以尝试在不同的虚拟环境中运行pyinstaller
。
在 Linux 上这样做。
-
安装 virtualenv
在外壳中:
使用virtualenv env_name
创建环境 - 这将创建
主目录中的“env_name”文件夹
使用source activate env_name
激活虚拟环境
现在您处于未安装库的环境中
使用pip install cython==0.26
安装 cython - 最新版本是 0.27.3,但 kivy 1.10 在使用时无法编译,这可能会在未来发生变化
用pip install kivy
安装kivy
安装 pyinstaller 和项目的任何其他依赖项
使用env_name/bin/pyinstaller script.py
运行pyinstaller - 这是必需的,因为通过运行pyinstaller
,您将在原始python 安装中使用它
这应该会合理地减少包中不需要的库的数量,只要确保你不要忘记安装任何东西
另外,请注意我没有在 pip install
命令中使用 sudo,这是因为您在虚拟环境中不需要它,使用它可能会影响结果
【讨论】:
非常感谢它的魅力。文件大小减少到 20mb,这包括 python、kivy docutils 等。以上是关于Kivy PyInstaller 在 Linux 中非常大的包大小的主要内容,如果未能解决你的问题,请参考以下文章
带有 kivy 的 Pyinstaller - 没有名为“kivy_deps”的模块
使用 pyinstaller 打包后 Kivy 应用程序崩溃
Pyinstaller 难以通过 Kivy 构建 FileChooserListView