时间:2021-05-22
前言
将py编译成可执行文件需要使用PyInstaller,之前给大家介绍了关于利用PyInstaller将python程序.py转为.exe的方法,在开始本文之前推荐大家可以先看下这篇文章,本文主要给大家介绍了Pyinstaller最新踩坑实战记录,现在网上关于pyinstaller的问题充斥着各种copy过来copy过去的答案,这大概就是各种无脑博客爬虫站最让人讨厌的地方。
而且这方面的问题,stackoverflow也是回答的千奇百怪。
强烈推荐官方文档 http://pythonhosted.org/PyInstaller/usage.html#options
引言
这里记录下我的两个踩坑解决方法,第一个其实网上有人写出来过,但是太容易被各种噪声淹没了。第二个则是摸索了一下午自己找到的解决方法。
一、PYTHON2X.DLL缺失
先声明环境
Windows10+python2.7.11 64bit+pyqt4 64bit+pyinstaller3.2解决
网上遇见这种错误基本有这几种:
其实,官方文档里给出了一个参数
--win-private-assemblies这个参数是指将共享的程序集变为私有程序集,这样的话即使改变环境,编译的程序依然只会执行私有程序集而忽视不同环境下的共享程序集。这个参数尤其适合在一台机器上编译完成后在各种不同环境下执行。
与之相近的还有一个参数
--win-no-prefer-redirects这两个参数是在比较新的pyinstaller版本中才有的选项,所以爬虫站点copy的老博客自然不会介绍这类方法。
二、WINDOWS2003 32BIT提示程序无效
环境如下:
Windows2k3 32bit+python 2.7.11 32bit+pyqt 32bit+pyinstaller2.1解决
其实就是有一个需求是在32位的win2003上执行打包后的pyqt。
最初是安装了最新版的一套32位python+pyqt+pyinstaller在32位的win7上编译执行成功了,但是把已经是32位的程序放到2003上却报错说是无效的win32程序。一开始怀疑2003和win7的32位难道还不一样?
结果一套最新程序在win2003上编译完还是报了同样的错。
搜索无果后,偶然看到一个帖子,是说PHP5.5不支持Win2003,在运行时就会报无效的win32程序这个错,恍然想到会不会是编译用到的哪个组件同样不支持Win2003了呢?
原本未打包的程序在2003上可以执行,那么多半是pyinstaller的问题,直接将pyinstaller回退到仍然在官方列表里的最老版本2.1,发现也只有2.1还支持python2.6以下的版本,打包成功不在报错。
但是这里又有一点小问题,打包的pyqt程序点击后没有任何效果,这次怀疑是参数问题,测试后发现,首先,老版本的pyinstaller没有我之前说的那两个改变程序集的命令;其次,如果使用-w去掉了命令行框的话,pyqt也没有办法执行起来,因此最后只使用-F –clean两个参数来打包,测试后文件可以执行。
其他
其实还有些小问题,但是这些问题答案都好找,就不在这里详细讲了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
需求描述页面的查询框增加一下显示历史查找记录实现及踩坑记录使用Element带输入建议的输入框来实现此需求。用法详见官网1.坑1:不能直接在querySearc
从Windows下的Apache转移到Linux下的Nginx,发现有很多坑需要踩。以下就做个简单的记录,方便后来者爬坑。配置Nginx,一般会遇到以下几个坑:
记录一下学习webpack+vue碰到的一个大坑,踩这个坑是我才疏学浅的表现,特此引以为戒。因为该坑实在是太坑了!代码header.htmlheader.jsi
前言springboot已经支持了定时任务Schedule模块,一般情况已经完全能够满足我们的实际需求。今天就记录一下我使用schedule时候踩的坑吧。想要使
今天在改后台页面,参数校验错误时输出全是英文,使用着很难看懂到底时什么错了故而决定去做i18n前端国际化.改的时候踩了很多坑,故而记录一下,顺便记录以下查问题的