解决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中对列表排序实例
Jan 04 Python
Python编程之属性和方法实例详解
May 19 Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
基于Python 装饰器装饰类中的方法实例
Apr 21 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
Python mutiprocessing多线程池pool操作示例
Jan 30 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
Python 中判断列表是否为空的方法
Nov 24 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
Feb 20 Python
pytorch 使用加载训练好的模型做inference
Feb 20 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
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
Script的加载方法小结
2011/01/12 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python中property函数用法实例分析
2018/06/04 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
服务生自我鉴定
2014/01/22 职场文书
关于圣诞节的广播稿
2014/01/26 职场文书
老师的检讨书
2014/02/23 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
MySQL的索引你了解吗
2022/03/13 MySQL