解决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下用于监视文件系统的pyinotify包
Nov 13 Python
解决python2.7 查询mysql时出现中文乱码
Oct 09 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
python随机取list中的元素方法
Apr 08 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
Python qqbot 实现qq机器人的示例代码
Jul 11 Python
python3中利用filter函数输出小于某个数的所有回文数实例
Nov 24 Python
Python实现名片管理系统
Feb 14 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
Python 发送邮件方法总结
Aug 10 Python
python 中的9个实用技巧,助你提高开发效率
Aug 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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
Drupal7中常用的数据库操作实例
2014/03/02 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
script标签属性用type还是language
2015/01/21 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
JS判断iframe是否加载完成的方法
2016/08/03 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
javascript实现延时显示提示框效果
2017/06/01 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
vue的for循环使用方法
2019/02/12 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
python遍历目录的方法小结
2016/04/28 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
Python 3.8 新功能全解
2019/07/25 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Python创建数字列表的示例
2019/11/28 Python
Python 高效编程技巧分享
2020/09/10 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
python regex库实例用法总结
2021/01/03 Python
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
师德建设实施方案
2014/03/21 职场文书
保护环境建议书100字
2014/05/13 职场文书
企业宗旨标语
2014/06/10 职场文书
涨价通知
2015/04/23 职场文书
投标单位介绍信
2015/05/05 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL