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读写文本文件及编写简单的文本编辑器
Mar 11 Python
在python win系统下 打开TXT文件的实例
Apr 29 Python
Anaconda下安装mysql-python的包实例
Jun 11 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
详解python深浅拷贝区别
Jun 24 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
Django+boostrap 美化admin后台的操作
Mar 11 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
详解python安装matplotlib库三种失败情况
Jul 28 Python
Pandas数据结构之Series的使用
Mar 31 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
Python 支持向量机分类器的实现
2020/01/15 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
python代码实现猜拳小游戏
2020/11/30 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
人力资源专业推荐信
2013/11/29 职场文书
房地产销售员的自我评价分享
2013/12/04 职场文书
大学生自荐信范文
2015/03/05 职场文书
电影建党伟业观后感
2015/06/01 职场文书
公司酒会致辞
2015/07/30 职场文书