pyqt打包成linux可执行程序,PyQt&opencv图像处理(5):python程序打包成可执行文件...

让我们稍微休息一下,来把我们目前写好的小程序打包成.exe文件。

python程序打包有一些方法,py2exe和pyinstaller。其中py2exe的安装比较方便,但是打包起来比较麻烦;而pyinstaller的安装很麻烦,不过打包时候很简单:它会自动分析你引用的包,把他们聚合在一起。比如打包之前的程序,py2exe打包完成后的文件有81M,并且不能在其他电脑上运行;而pyinstaller则只有27M,可以在xp系统下运行(我的是win8)。

让我们来尝试一下pyinstaller吧。

首先下载安装pywin32::

http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/

注意要找到正确的文件。

然后我们要下载一个工具pip-Win,用以安装需求的包。

https://sites.google.com/site/pydatalog/python/pip-for-windows

下载运行后,pip-Win会自动安装自己需要的包,然后给出一个gui界面,类似这样:

905e37b2016f7e42c906587a1f9875d7.png

在Command中输入:

venv -c -i pyi-env-name

这一步是建立一个虚拟环境。当这个安装成功后,不要着急关掉命令行,继续输入:

pip install PyInstaller

即可安装好pyInstaller。以后每次打包的时候,都要先翻出这个pip-Win_xx.exe来,然后在Command中输入

venv pyi-env-name

虚拟一个环境。

虚拟好环境后,手动进入python脚本所在的目录,具体方法是在命令行输入: cd d:\xxx\ ,如果目录不切换的话,先打一个 d:\,再cd到最终目录。

然后输入:pyinstaller main.py -F -w

其中-F是指打包成一整个文件,-w是指窗口文件,如果你是命令行程序就输入-c。

这样就可以把python脚本打包成文件了。不过打包之后我发现jpg格式的图片无法读取了。。。。待考。

抱着一定要让它work的心态,稍微修改一下读取jpg格式时的代码如下:

if not fileName.endsWith('.jpg'):

self.__picture_origin = QImage(unicode(fileName.toUtf8(), 'utf-8', 'ignore'))

else:

image = cv2.imread(unicode(fileName.toUtf8(), 'utf-8', 'ignore'))

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

self.__picture_origin = QImage(image.data, image.shape[1], image.shape[0], QtGui.QImage.Format_RGB888)

self.__picture_origin = self.__picture_origin.convertToFormat(QtGui.QImage.Format_ARGB32)

就可以正常读取了:

b5facdb7fd8e191d4cc21e6f6ae098a5.png

另外还有一处bug是保存图片的时候,主要是要对fileName进行utf8编码,照着open时候的写就可以了。本学期上完的时候会把所有的code打包开放下载,作为这个系列的结束。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值