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编程实现线性回归和批量梯度下降法代码实例
Jan 04 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
深入理解Django-Signals信号量
Feb 19 Python
python里dict变成list实例方法
Jun 26 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
浅谈django 重载str 方法
May 19 Python
Python操作MySQL数据库的示例代码
Jul 13 Python
浅析python 字典嵌套
Sep 29 Python
Python基础之变量的相关知识总结
Jun 23 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Apr 12 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开发框架总结收藏
2008/04/24 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
php接口技术实例详解
2016/12/07 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
详解Python多线程
2016/11/14 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
Python 远程开关机的方法
2020/11/18 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
毕业生个人求职信范例分享
2013/12/17 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
Python自动化爬取天眼查数据的实现
2021/06/15 Python
MySQL分区表管理命令汇总
2022/03/21 MySQL
Python闭包的定义和使用方法
2022/04/11 Python