位置: 编程技术 - 正文
推荐整理分享使用Pyinstaller的最新踩坑实战记录(python中pyinstaller),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python中pyinstaller,pyinstaller 命令,pyinstaller option,pyinstaller 命令,pyinstaller --key,pyinstaller pyd,pyinstaller import,pyinstaller --key,内容如对您有帮助,希望把文章链接给更多的朋友!
前言
将py编译成可执行文件需要使用PyInstaller,之前给大家介绍了关于利用PyInstaller将python程序.py转为.exe的方法,在开始本文之前推荐大家可以先看下这篇文章,本文主要给大家介绍了Pyinstaller最新踩坑实战记录,现在网上关于pyinstaller的问题充斥着各种copy过来copy过去的答案,这大概就是各种无脑博客爬虫站最让人讨厌的地方。而且这方面的问题,stackoverflow也是回答的千奇百怪。
强烈推荐官方文档 bit+pyqt4 bit+pyinstaller3.2解决
网上遇见这种错误基本有这几种:
手动寻找.dll文件并移到对应文件夹下,网上被流传最广的做法,我测试后无效 修改SPEC文件,添加各种路径,这种手动添加路径的方法也着实令人头疼 编译时,使用-path参数等,也是需要手动添加路径其实,官方文档里给出了一个参数
这个参数是指将共享的程序集变为私有程序集,这样的话即使改变环境,编译的程序依然只会执行私有程序集而忽视不同环境下的共享程序集。这个参数尤其适合在一台机器上编译完成后在各种不同环境下执行。
与之相近的还有一个参数
这两个参数是在比较新的pyinstaller版本中才有的选项,所以爬虫站点copy的老博客自然不会介绍这类方法。
二、WINDOWS BIT提示程序无效
环境如下:
Windows2k3 bit+python 2.7. bit+pyqt bit+pyinstaller2.1解决
其实就是有一个需求是在位的win上执行打包后的pyqt。
最初是安装了最新版的一套位python+pyqt+pyinstaller在位的win7上编译执行成功了,但是把已经是位的程序放到上却报错说是无效的win程序。一开始怀疑和win7的位难道还不一样?
结果一套最新程序在win上编译完还是报了同样的错。
搜索无果后,偶然看到一个帖子,是说PHP5.5不支持Win,在运行时就会报无效的win程序这个错,恍然想到会不会是编译用到的哪个组件同样不支持Win了呢?
原本未打包的程序在上可以执行,那么多半是pyinstaller的问题,直接将pyinstaller回退到仍然在官方列表里的最老版本2.1,发现也只有2.1还支持python2.6以下的版本,打包成功不在报错。
但是这里又有一点小问题,打包的pyqt程序点击后没有任何效果,这次怀疑是参数问题,测试后发现,首先,老版本的pyinstaller没有我之前说的那两个改变程序集的命令;其次,如果使用-w去掉了命令行框的话,pyqt也没有办法执行起来,因此最后只使用-F ?clean两个参数来打包,测试后文件可以执行。
其他
其实还有些小问题,但是这些问题答案都好找,就不在这里详细讲了。
pywin官网上很好下到对应版本 直接的pyqt安装包官网不再提供了,可以去sourceforge下到 编译的时候报VC的错,安装Microsoft Visual C++ xx Redistributable Package,注意位和位总结
友情链接: 武汉网站建设