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 (2)
Oct 31 Python
python实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
python选择排序算法实例总结
Jul 01 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
zookeeper python接口实例详解
Jan 18 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
Python列表的切片实例讲解
Aug 20 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
python jenkins 打包构建代码的示例代码
Nov 29 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
微信支付的开发流程详解
2016/09/13 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
JavaScript网页定位详解
2014/01/13 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
js实现拖拽效果
2015/02/12 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Python代码调试的几种方法总结
2015/04/15 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
高中毕业生自我鉴定范文
2013/09/26 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
个人事迹材料范文
2014/12/29 职场文书
入党转正申请报告
2015/05/15 职场文书