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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python实现telnet服务器的方法
Jul 10 Python
简单实现python画圆功能
Jan 25 Python
详解python编译器和解释器的区别
Jun 24 Python
python 寻找离散序列极值点的方法
Jul 10 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
django自定义模板标签过程解析
Dec 14 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
python实现3D地图可视化
Mar 25 Python
如何用python处理excel表格
Jun 09 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 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常用函数 推荐收藏保存
2010/02/21 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
php技巧小结【推荐】
2017/01/19 PHP
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
初步理解Python进程的信号通讯
2015/04/09 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
eclipse创建python项目步骤详解
2019/05/10 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
英语国培研修感言
2014/02/13 职场文书
项目合作协议书范本
2014/04/16 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
公司催款律师函
2015/05/27 职场文书
红色故事汇观后感
2015/06/18 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电