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命令行参数解析模块getopt使用实例
Apr 13 Python
浅谈python迭代器
Nov 08 Python
Python中一行和多行import模块问题
Apr 01 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
pip指定python位置安装软件包的方法
Jul 12 Python
Python处理session的方法整理
Aug 29 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
Python 读取位于包中的数据文件
Aug 07 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 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中调用JAVA
2006/10/09 PHP
php 静态化实现代码
2009/03/20 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
微信小程序实现多选功能
2018/11/04 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
Django自定义分页效果
2017/06/27 Python
python安装教程
2018/02/28 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
社区五一劳动节活动总结
2015/02/09 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
银行稽核岗位职责
2015/04/13 职场文书
一文带你探究MySQL中的NULL
2021/11/11 MySQL
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL