pyinstaller跨平台python编译问题总结

原创 2014年09月05日 17:11:51

对于pyinstaller,可以完成在windows,linux,和mac下的python脚本编译,生成exe,elf,.app文件;

1.使用方法;

在pyinstaller的官网上下载,一般是源码包,可以解压缩之后直接使用:

python pyinstaller.py  test.py

 在pyinstaller的目录下 生成一个test目录,并且含有buid和dist两个子目录,子目录dist中存放可执行文件;


2.如果需要编译成单个文件:

python pyinstaller.py   -F  test.py  

生成单个的可执行文件


3.如果需要添加软件的图标:

python pyinstaller.py   -F  test.py   -i test.icon

注意一定是icon文件才行;


3.如果编译GUI项目,可以使用

python  pyinstaller.py -w test.py

或者:

python  pyinstaller.py -w test.pyw


或者:

python  pyinstaller.py -w --noconsole( windwos平台下)

linux下默认没有弹窗(弹出terminal);


4.在mac环境下编译,含有app可执行文件.

python  pyinstaller.py  test.py -w  --windowed

此时在项目目录下含有unix可执行文件和app文件


5.压缩可执行文件

使用upx;

upx支持windows,linux32/64位;


使用方法:

Windows下:将upx.exe直接放置于PyInstaller的目录下;

linux下使用指令:
python  pyinstaller.py  test.py --upx-dir  /home/test/upx/


6.mac下pyinstaller编译不稳定,可以使用py2app尝试。


通过此次项目的完成过程,我体会到完成跨平台软件,兼容性是个大问题,此外,使用python完成的项目,暂时编译成可执行文件之后文件太大,执行效率低下;

尤其是加入了GUI的项目,比如使用Qt之后的项目,编译成可执行文件执行速度和效率都降低。

跨平台项目最好选用C语言或者java,因为现有的编译器都很方便。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用pyInstaller打包的一点经验

1 Popen class subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=No...

pyinstaller 工具起步

准备 依赖 pyinstaller下载 语法 核心命令 可选项 实战 md2htmlpy 使用pyinstaller 其他测试 -D选项 --icon选项 遇到错误怎么办 总结继上次的那个Python...

python下RSA加密解密以及跨平台问题

项目合作需要,和其他网站通信,消息内容采用RSA加密方式传递。之前没有接触过RSA,于是两个问题出现了: 声明: 环境WIN 7 + python 2.6.6 RSA格式:PEM 一、Python...

C++字符串常量跨平台编译问题(与字符串编码相关)

1. 问题 在C++代码中,给一个string类型的变量赋值一个中文字符串常量,例如: string s = "中文字符串" 变量s中保存的字节内容是什么?如果源文件的编码格式转换了,比如从GB...

minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】

原文:http://www.cnblogs.com/2018/archive/2012/03/10/2386128.html 这几天在整C++的跨平台交叉编译问题,总算告一段落,把具体涉及的...

C/C++ 32位机器和64位机器 差异问题总结 跨平台 移植问题 语言编程需要注意的64位和32机器的区别

#include OS version:Red Hat Enterprise Linux Server release 5.3 (Tikanga) Linux 2.6.18-128.el5 #...
  • cx_wzp
  • cx_wzp
  • 2013-10-13 16:38
  • 2388

pyinstaller 打包Python程序(APScheduler,mysql)遇到的问题

Pyinstaller打包用到数据库和APScheduler(任务调度器),遇到问题 1.没有_mysql.so库造成报错 解决办法是找到_mysql.so拷贝到可执行程序目录下 2.蛋疼的任务...

Python实现跨平台运维小神器

这阵子一直在学python,碰巧最近想把线上服务器环境做一些规范化/统一化,于是便萌生了用python写一个小工具的冲动。就功能方面来说,基本上是在“重复造轮子”吧,但是当我用这小工具完成了30多台服...
  • kai404
  • kai404
  • 2016-08-10 11:59
  • 1718
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)