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 10 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
python中下标和切片的使用方法解析
Aug 27 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
重写django的model下的objects模型管理器方式
May 15 Python
Django REST Swagger实现指定api参数
Jul 07 Python
python 下划线的不同用法
Oct 24 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 Python
如何在C++中调用Python
May 21 Python
python中os.path.join()函数实例用法
May 26 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
Stop SQL Server
2007/06/21 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
对VUE中的对象添加属性
2018/09/18 Javascript
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
python实现图像外边界跟踪操作
2020/07/13 Python
用python发送微信消息
2020/12/21 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
保洁主管岗位职责
2013/11/20 职场文书
销售主管岗位职责
2014/02/08 职场文书
歌唱比赛主持词
2014/03/18 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python