用 pyinstaller 打包的程序很大

2019-09-29 08:28:16 +08:00
 voids
python 新手,检索后发现这个问题和导入全部模块有关,求助 os 只用了 os._exit 的话应该怎么导入。还有 requests 只用了 session 的 post 和 get,除了 import requests 还可以怎么写?谢谢
5274 次点击
所在节点    Python
13 条回复
yzc27
2019-09-29 08:29:54 +08:00
from requests import get, post

随手猜的。
liukrystal
2019-09-29 09:10:23 +08:00
进 pipenv,用虚拟环境,只安装 py 文件里需要的包,会小很多。
cherbim
2019-09-29 09:10:37 +08:00
你打包的时间会把你 Python 安装的所有的库都搞下来导致 exe 运行文件比较大一般都是上百 m,所以一般都是虚拟环境里安装,用哪个库安哪个库,这俩库并不是很大啊,我记得我一个应用安装了 requests 和 xlml,打包后也才 10m 左右……
cherbim
2019-09-29 09:11:33 +08:00
你搜一下教程,虚拟环境里重新打包试试……
676529483
2019-09-29 09:12:47 +08:00
据我所知,pyinstaller 没办法只打包一部分(求大佬更正),用 upx 可以减少几 M。但是在代码量上升的时候,体积变化不大。
cwjokaka
2019-09-29 09:15:37 +08:00
我是建立一个虚拟环境,再打包。之前用系统环境,打出来有 400M😂
gimp
2019-09-29 09:22:42 +08:00
你打出有多大,7,8M 大小正常
voids
2019-09-29 09:34:06 +08:00
@yzc27
@liukrystal
@cherbim
@cherbim
@676529483
@cwjokaka
@gimp
谢谢啦,测试了一圈也没有降下来,不过也没有几百 M,日常使用没啥影响了
kknd22
2019-09-29 10:05:12 +08:00
用 delphi,那个够小,而且不依赖各种库,有时候图标比程序还大
ClericPy
2019-09-29 22:54:55 +08:00
虚拟环境有用是明摆着了, 虽然不知道 pyinstaller 为什么非要全部的库都打包进去... 如果有个参数就好了, 或者支持个 Requirements 列表来过滤下

另外就是, 1 楼的方法究竟是否有用???????????
ClericPy
2019-09-29 22:57:40 +08:00
虚拟环境那个有参数... 好像是 -p ......... 不需要进入环境再打包...

https://pyinstaller.readthedocs.io/en/stable/usage.html#what-to-bundle-where-to-search

太久不用直接记不起来了, 这几年一直用的 auto py to exe...
voids
2019-09-30 08:35:20 +08:00
@ClericPy 已测试,没有用
ClericPy
2019-09-30 20:47:27 +08:00
@voids 好多年没打包了, 一直 shiv 就够我发布, 不知道 py2exe 和 cxfreeze 什么样, 反正 pyinstaller 现在已经要一家独大了...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/605216

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX