解决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正则表达式判断字符串是否是全部小写示例
Dec 25 Python
浅析Python中的序列化存储的方法
Apr 28 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
如何高效使用Python字典的方法详解
Aug 31 Python
python操作列表的函数使用代码详解
Dec 28 Python
简单实现python聊天程序
Apr 01 Python
python多进程重复加载的解决方式
Dec 13 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
利用python+request通过接口实现人员通行记录上传功能
Jan 13 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
几种显示数据的方法的比较
2006/10/09 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
Python中字符串的处理技巧分享
2016/09/17 Python
python爬取指定微信公众号文章
2018/12/20 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
学生档案自我鉴定
2013/10/07 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
收入证明怎么写
2015/06/12 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL