pyinstaller将含有多个py文件的python程序做成exe


Posted in Python onApril 29, 2020

1.尽量将资源文件夹放到主文件夹下

pyinstaller将含有多个py文件的python程序做成exe

2.pyi-makespec main.py

制作spec文件

3.spec文件在当前文件夹下,main.spec

编辑spec文件

# -*- mode: python -*-
block_cipher = None
 
a = Analysis(['main.py', 'monitor.py',  
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\caption_recognizer.py', 
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\image_recognizer.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\image_vectorizer.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\network2.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\test_fun.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\unicom_area.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\unicom_area_finder.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\unicom_area_include_caption_judger.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_module\\value_vectorizer.py'],
             pathex=['E:\\py_project\\test_wpf_python_msg'],
             binaries=[],
             datas=[('E:\\py_project\\test_wpf_python_msg\\images', 'images'),
			('E:\\py_project\\test_wpf_python_msg\\network_parameters', 'network_parameters')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='main',
          debug=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='main')

pyinstaller将含有多个py文件的python程序做成exe

(1)第一个列表中写所有的py文件,与main一个文件夹的可以直接写文件名,不一个文件夹的需要写完整的文件路径。

我曾试过在pathex中加入其他文件的路径,然后其他py文件不写完整路径,只写文件名,但是失败了。

(2)datas是中的元素是tuple类型,tuple的第一个参数是python项目中data文件(非py文件)的路径,

第二个参数是data在exe中保存此资源的文件夹名,要和项目中的文件夹名相同

(3)最重要: 因为编译成exe之后的main.exe是在最外层的文件夹的。因为main.py是入口文件,所以被调用的其他py文件的当前路径都是main.py文件的当前路径。所以在源代码中就一定要把main.py放到最外层的项目文件夹中,这样main.py的当前路径才能和main.exe的路径保持一致,才能让其他的py文件的当前路径不变,他们才可以找到data资源。

4.用之前配置的spec文件制作exe: pyinstaller -d main.spec

使用-d制作出来的exe比使用-f的快很多,因为-f把所有dll文件都打包到一个exe中了。

5.生成的exe在dist文件夹中

到此这篇关于pyinstaller将含有多个py文件的python程序做成exe的文章就介绍到这了,更多相关pyinstaller py打包成exe内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木

Python 相关文章推荐
关于Python中浮点数精度处理的技巧总结
Aug 10 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
DataFrame中的object转换成float的方法
Apr 10 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
python如何实现代码检查
Jun 28 Python
Python寻找路径和查找文件路径的示例
Jul 10 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
python 消除 futureWarning问题的解决
Dec 25 Python
Python连接mysql方法及常用参数
Sep 01 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
如何使用python切换hosts文件
Apr 29 #Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 #Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 #Python
使用Python将图片转正方形的两种方法实例代码详解
Apr 29 #Python
Python通过Pillow实现图片对比
Apr 29 #Python
Python unittest单元测试框架实现参数化
Apr 29 #Python
Python ORM框架Peewee用法详解
Apr 29 #Python
You might like
php初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
php cli换行示例
2014/04/22 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
Python中类的初始化特殊方法
2017/12/01 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
中华魂放飞梦想演讲稿
2014/08/26 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
解决Oracle数据库用户密码过期
2022/05/11 Oracle