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 random模块常用方法
Nov 03 Python
python中range()与xrange()用法分析
Sep 21 Python
彻底搞懂Python字符编码
Jan 23 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 Python
Python读写/追加excel文件Demo分享
May 03 Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
详解python中eval函数的作用
Oct 22 Python
python绘制规则网络图形实例
Dec 09 Python
Python gevent协程切换实现详解
Sep 14 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
PyQt QMainWindow的使用示例
Mar 24 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下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
apache集成php7.3.5的详细步骤
2019/06/20 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
使用console进行性能测试
2015/04/27 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
python提取字典key列表的方法
2015/07/11 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
如何保障Web服务器安全
2014/05/05 面试题
预备党员入党思想汇报
2014/01/04 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
个人授权委托书范本
2014/04/03 职场文书
家长学校工作方案
2014/05/07 职场文书
环卫工人慰问信
2015/02/15 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
JavaScript设计模式之原型模式详情
2022/06/21 Javascript
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技