Pyinstaller程序运行良好,但如果我尝试用zip或7z压缩它,它会冻结windows

2024-04-28 10:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,我需要以exe的形式分发给我的团队(他们需要有不同版本的python作为其他东西的依赖项)。最初,我把所有东西都放在一个文件中,并使用--onefile参数,它工作得很好。但是为了更好地组织代码,我移动到多个文件。在调整了一些相对路径问题之后,从现在开始在主程序dir的sub_dir中运行exe,它仍然在执行,没有任何问题。然而,一旦我压缩程序目录以发送给我的团队,如果我尝试解压缩它,Windows基本上会慢到爬行。最终,任务栏甚至消失了。移动它也需要惊人的长时间。它只有40MB,但是有很多文件。每个Windows属性有2586个文件和281个文件夹

我的依赖项列表也大大增加了,所以这可能是相关的:

>altgraph==0.17
>autopep8==1.5.5
>backcall==0.2.0
>cachetools==4.2.1
>codetiming==1.3.0
>colorama==0.4.4
>decorator==4.4.2
>et-xmlfile==1.0.1
>future==0.18.2
>ipykernel==5.5.0
>ipython==7.21.0
>ipython-genutils==0.2.0
>jedi==0.18.0
>jupyter-client==6.1.12
>jupyter-core==4.7.1
>openpyxl==3.0.7
>parso==0.8.1
>pefile==2019.4.18
>pickleshare==0.7.5
>prompt-toolkit==3.0.17
>py2exe==0.10.3.0
>pycodestyle==2.6.0
>Pygments==2.8.1
>pyinstaller==4.2
>pyinstaller-hooks-contrib==2021.1
>python-dateutil==2.8.1
>pywin32==300
>pywin32-ctypes==0.2.0
>PyYAML==5.4.1
>pyzmq==22.0.3
>six==1.15.0
>toml==0.10.2
>tornado==6.1
>tqdm==4.59.0
>traitlets==5.0.5
>wcwidth==0.2.5
>XlsxWriter==1.3.7

明天我将尝试的第一件事是从venv卸载ipython,因为我只需要它来进行VS代码交互式shell调试。但除此之外,你知道为什么会发生这种情况吗


Tags: 文件代码程序版本参数windowsdiripython
1条回答
网友
1楼 · 发布于 2024-04-28 10:25:25

是的,事实证明我是对的。我卸载了以下软件包(在激活venv后使用pip卸载):

伊皮克内尔 伊皮顿 伊皮顿膝 jupyter客户端 jupyter岩芯 代码计时(代码计时可能不相关,但我不再使用它)

这个包从大约40mb到23MB,从大约2500个文件到42个文件。现在,在压缩、解压缩、移动等方面没有延迟

可能问题是内核在构建时正在运行,一些缓存被复制了,或者什么的?或者ipython和pyinstaller只是不兼容

但我认为,这个故事更普遍的寓意是,在构建要分发的内容时,更仔细地考虑将开发沙箱环境与生产环境分离

相关问题 更多 >