python打包问题,高手进

zengna_com 2010-09-03 10:18:47
小弟刚学Python不久,目前想做一个跨平台的安装包。

但是我看py2exe打包不好用啊,随便打包一个都是15M以上的,而且是一大堆文件。

大侠们,有没有好的方法,推荐一下啊,最好是打包成一个单文件exe,或者msi。压缩率高一点的。

类似于Windows下的InstallShield。或者提供一下压缩解压算法的。

小弟最近可困扰了!!感激不尽啊。

...全文
333 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
jojoyankkk 2010-09-14
  • 打赏
  • 举报
回复
学习一下!
  • 打赏
  • 举报
回复
wx、win32api,都GUI了 还嫌大。。
zengna_com 2010-09-10
  • 打赏
  • 举报
回复
谁有linux下的wxpython安装包啊,留个地址给我下载啊
zengna_com 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 iambic 的回复:]
又有wx,又有win32api,估计小不了。
[/Quote]

是啊。一个很简单的wx程序打包都有14M。用pyinstaller打包的话6M
iambic 2010-09-09
  • 打赏
  • 举报
回复
又有wx,又有win32api,估计小不了。
zengna_com 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 notax 的回复:]
LZ 的包 15MB,是大了点,我打包间单的pyqt4(不包,webkit,webview) 大该9~10MB,
py2exe不可以跨平台,
mac用py2app
打包jython 也不小,9~10MB,
另外,PyInstaller 是可以跨平台,LZ可以试试, http://www.pyinstaller.org/
[/Quote]

谢谢你。
windows可以用py2exe
mac下可以用py2app

PyInstaller除了支持windows和linux包,还支持mac下的包吗?
notax 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 thy38 的回复:]

Python还是做好胶水工作比较好,发布完整程序还是用C#、Java、C++吧。

py2exe我用过多次,从未超过15M,比如我写的这个程序,是我打包最大的,14.3MB:
[/Quote]

哇,不错哦


LZ 的包 15MB,是大了点,我打包间单的pyqt4(不包,webkit,webview) 大该9~10MB,
py2exe不可以跨平台,
mac用py2app
打包jython 也不小,9~10MB,
另外,PyInstaller 是可以跨平台,LZ可以试试, http://www.pyinstaller.org/
zengna_com 2010-09-08
  • 打赏
  • 举报
回复
哦,可能是我的程序导入的库太多了吧。

感觉还是太大了。
# -*-coding=utf-8 -*-
import wx
import os,sys
import win32api
import win32con
import wx.lib.newevent
import zfile
import pythoncom
from win32com.shell import shell
from win32com.shell import shellcon
from win32api import GetFileVersionInfo, LOWORD, HIWORD
thy38 2010-09-08
  • 打赏
  • 举报
回复
Python还是做好胶水工作比较好,发布完整程序还是用C#、Java、C++吧。

py2exe我用过多次,从未超过15M,比如我写的这个程序,是我打包最大的,14.3MB:
beihao_1981 2010-09-07
  • 打赏
  • 举报
回复
Python,新手。看看!
infofox 2010-09-06
  • 打赏
  • 举报
回复
没那么大 是不是把python也打进去了?
iambic 2010-09-06
  • 打赏
  • 举报
回复
别搞啥EXE了,浪费精力。把精力花在真正的项目上。只要你的东西做的好,让别人装一个环境不是什么费力的事。我就是这样,给你个什么Perl/Python/Lisp脚本,爱用不用。
如果你非要EXE,还是用C++比较好。另外可以考虑下目标客户上是不是有Java/.NET环境。如果有Java/.NET,可以用Jython或者IronPython之类的。
guoxuqu 2010-09-03
  • 打赏
  • 举报
回复
学习了。
I_NBFA 2010-09-03
  • 打赏
  • 举报
回复
随便打包一个都是15M以上
LZ幽默了一把, 于是此等亮度吓跑一片不明真相帝.
py2exe会生成两个文件夹, build, dist.
我算了算这两加起来差不多15M,
遗憾的是LZ不知道build里全是中间文件.
dist才是要release的东西, 这样一来小了不少吧.

另外新版py2exe可以打成单独文件滴
李察德-泰森 2010-09-03
  • 打赏
  • 举报
回复
setup.py

#coding=utf-8

from distutils.core import setup
import py2exe

options = {"py2exe":
{"compressed": 1, #压缩
"optimize": 2,
"bundle_files": 1 #所有文件打包成一个exe文件
}
}

setup(
# The first three parameters are not required, if at least a
# 'version' is given, then a versioninfo resource is built from
# them and added to the executables.
version = "1.0.0",
description = "xxxxxxx",
name = "xxxxxx",

options = options,
zipfile=None, #不生成library.zip文件

# targets to build
console = [{"script": "xxxxxx.py", "icon_resources": [(1, "python.ico")] }]#源文件,程序图标
)

这样打包出来的dist里面只有3个文件,不会那么大。
I_NBFA 2010-09-03
  • 打赏
  • 举报
回复
真不知道LZ是怎么"随便"的, 随便了什么, 随便了几次, 得出这么惊人的结论.
I_NBFA 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 thundor 的回复:]
引用 1 楼 i_nbfa 的回复:
随便打包一个都是15M以上
LZ幽默了一把, 于是此等亮度吓跑一片不明真相帝.
py2exe会生成两个文件夹, build, dist.
我算了算这两加起来差不多15M,
遗憾的是LZ不知道build里全是中间文件.
dist才是要release的东西, 这样一来小了不少吧.

另外新版py2exe可以打成单独文件滴

我花100分不是在这……
[/Quote]
哦, LZ不是幽默啊, 那我理解有误, 呵呵
用py2exe的很多, tkinter hello world也不过4-6M, 其他GUI包有8M+的.
随便打包一个都是15M以上
console hello world也15M滴? 官方版本正确打包, 这让我感觉LZ很幽默.
其实很简单, 如果真象LZ那么幽默, py2exe也就混不到今天了.
nieoding 2010-09-03
  • 打赏
  • 举报
回复
NSIS如何?
zengna_com 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 i_nbfa 的回复:]
随便打包一个都是15M以上
LZ幽默了一把, 于是此等亮度吓跑一片不明真相帝.
py2exe会生成两个文件夹, build, dist.
我算了算这两加起来差不多15M,
遗憾的是LZ不知道build里全是中间文件.
dist才是要release的东西, 这样一来小了不少吧.

另外新版py2exe可以打成单独文件滴
[/Quote]
我花100分不是在这里听风凉话的,我是打包过的,build也不大,2~3M;dist就是有15M。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧