解决Pyinstaller打包软件失败的一个坑


Posted in Python onMarch 04, 2021

最近写了一个软件屡屡打包不能正常运行,而直接在cmd命令行窗口运行却都能正常输出,没有任何报错,一开始怀疑程序里面sys.args[1]使用不对,找了很久发现import numpy才是导致代码不能打包的直接原因。

不知道为何引用这个包就不能正常打包成exe了。

程序编译中出错的代码如下

pyinstaller -F C:\Users\LHD_PC\AppData\Local\Progr
ams\Python\Python38-32\Scripts\AutoElecCalcE.py
91 INFO: PyInstaller: 3.6
91 INFO: Python: 3.8.0
93 INFO: Platform: Windows-10-10.0.17134-SP0
94 INFO: wrote C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts\AutoElecCalcE.spec
99 INFO: UPX is not available.
101 INFO: Extending PYTHONPATH with paths
[‘C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts',
‘C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts']
101 INFO: checking Analysis
113 INFO: Building because C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts\AutoElecCalcE.py changed
113 INFO: Initializing module dependency graph…
119 INFO: Caching module graph hooks…
134 INFO: Analyzing base_library.zip …
5521 INFO: Caching module dependency graph…
5650 INFO: running Analysis Analysis-00.toc
5654 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
required by c:\users\lhd_pc\appdata\local\programs\python\python38-32\python.exe
6018 INFO: Analyzing C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts\AutoElecCalcE.py
6547 INFO: Processing pre-find module path hook distutils
6549 INFO: distutils: retargeting to non-venv dir ‘c:\users\lhd_pc\appdata\local\programs\python\python38-32\lib'
7356 INFO: Processing pre-find module path hook site
7357 INFO: site: retargeting to fake-dir ‘c:\users\lhd_pc\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\fake-modules'
8994 INFO: Processing pre-safe import module hook setuptools.extern.six.moves
12451 INFO: Processing module hooks…
12451 INFO: Loading module hook “hook-distutils.py”…
12454 INFO: Loading module hook “hook-encodings.py”…
12744 INFO: Loading module hook “hook-lib2to3.py”…
12757 INFO: Loading module hook “hook-numpy.core.py”…
13540 INFO: Loading module hook “hook-numpy.py”…
13546 INFO: Loading module hook “hook-pkg_resources.py”…
15200 INFO: Processing pre-safe import module hook win32com
15767 INFO: Excluding import ‘main'
15769 INFO: Removing import of main from module pkg_resources
15769 INFO: Loading module hook “hook-pydoc.py”…
15782 INFO: Loading module hook “hook-pythoncom.py”…
16198 INFO: Loading module hook “hook-pywintypes.py”…
16605 INFO: Loading module hook “hook-scipy.py”…
16663 INFO: Loading module hook “hook-setuptools.py”…
18364 INFO: Loading module hook “hook-sysconfig.py”…
18375 INFO: Loading module hook “hook-win32com.py”…
c:\users\lhd_pc\appdata\local\programs\python\python38-32\lib\site-packages\win32com\client\makepy.py:369: SyntaxWarning: “is not” with a literal. Did you mean “!=”?
if path is not ‘' and not os.path.exists(path):
20023 INFO: Loading module hook “hook-xml.dom.domreg.py”…
20030 INFO: Loading module hook “hook-xml.py”…
20090 INFO: Looking for ctypes DLLs
20132 INFO: Analyzing run-time hooks …
20139 INFO: Including run-time hook ‘pyi_rth_multiprocessing.py'
20162 INFO: Including run-time hook ‘pyi_rth_pkgres.py'
20192 INFO: Including run-time hook ‘pyi_rth_win32comgenpy.py'
20229 INFO: Looking for dynamic libraries
21772 INFO: Looking for eggs
21772 INFO: Using Python library c:\users\lhd_pc\appdata\local\programs\python\python38-32\python38.dll
21773 INFO: Found binding redirects:
[]
21798 INFO: Warnings written to C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts\build\AutoElecCalcE\warn-AutoElecCalcE.txt
21932 INFO: Graph cross-reference written to C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts\build\AutoElecCalcE\xref-AutoElecCalcE.html
22003 INFO: checking PYZ
22017 INFO: Building because toc changed
22017 INFO: Building PYZ (ZlibArchive) C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts\build\AutoElecCalcE\PYZ-00.pyz
23373 INFO: Building PYZ (ZlibArchive) C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts\build\AutoElecCalcE\PYZ-00.pyz completed successfully.
23419 INFO: checking PKG
23427 INFO: Building because toc changed
23427 INFO: Building PKG (CArchive) PKG-00.pkg
37085 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
37098 INFO: Bootloader c:\users\lhd_pc\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\bootloader\Windows-32bit\run.exe
37098 INFO: checking EXE
37107 INFO: Rebuilding EXE-00.toc because AutoElecCalcE.exe missing
37107 INFO: Building EXE from EXE-00.toc
37111 INFO: Appending archive to EXE C:\Users\LHD_PC\AppData\Local\Programs\Python\Python38-32\Scripts\dist\AutoElecCalcE.exe
37154 INFO: Building EXE from EXE-00.toc completed successfully.

之前一直怀疑路径没处理对,后面看了很多别的代码发现也没问题,突发奇想是不是某个包造成不能正常压缩的,然后写了个测试文件,一行行注释掉引用的包后,发现只要注释掉了numpy便可以正常压缩成exe文件了。

补充:pyinstaller安装失败的解决办法

pyinstaller是一个很好用的将python文件打包成不依赖python环境的exe的库,但是在cmd中使用 “pip install pyinstaller”时,总会出现很多奇奇怪怪的问题。

我在安装库的过程中,碰到了下载之后,直接开始安装就报错退出安装的问题。

解决办法如下

1.其实一点也不麻烦

2.先“pip install pywin32”

3.在“pip install wheel”

4.试一下“pip install pyinstaller”

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
Python函数嵌套实例
Sep 23 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
Python实现输出某区间范围内全部素数的方法
May 02 Python
深入解析Python小白学习【操作列表】
Mar 23 Python
详解爬虫被封的问题
Apr 23 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
Tensorflow Summary用法学习笔记
Jan 10 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
flask开启多线程的具体方法
Aug 02 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 #Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 #Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 #Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 #Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 #Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 #Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 #Python
You might like
php多文件上传实现代码
2014/02/20 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
PHP利用APC模块实现大文件上传进度条的方法
2015/10/29 PHP
Stop SQL Server
2007/06/21 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
微信小程序实现拼图小游戏
2020/10/22 Javascript
python利用beautifulSoup实现爬虫
2014/09/29 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
使用python生成目录树
2018/03/29 Python
python浪漫表白源码
2019/04/05 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
市场营销方案范文
2014/03/11 职场文书
高中班主任评语大全
2014/04/25 职场文书
技术经济专业求职信
2014/09/03 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
可怜妈妈观后感
2015/06/09 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
2022微信温控新功能上线
2022/05/09 数码科技