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 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
python利用拉链法实现字典方法示例
Mar 25 Python
Python变量和字符串详解
Apr 29 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
python pytest进阶之fixture详解
Jun 27 Python
python tkinter实现彩球碰撞屏保
Jul 30 Python
python代码如何实现余弦相似性计算
Feb 09 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
Python使用monkey.patch_all()解决协程阻塞问题
Apr 15 Python
Python实例教程之检索输出月份日历表
Dec 16 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的header和asp中的redirect比较
2006/10/09 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
js日历功能对象
2012/01/12 Javascript
Javascript Throttle & Debounce应用介绍
2013/03/19 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
vue实现搜索功能
2019/05/28 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
Python去除列表中重复元素的方法
2015/03/20 Python
python实现汉诺塔方法汇总
2016/07/25 Python
python决策树之C4.5算法详解
2017/12/20 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
python中的时区问题
2021/01/14 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
帕克纽约:PARKER NY
2018/12/09 全球购物
生物制药专业求职信
2014/03/11 职场文书
关于安全的广播稿
2014/10/23 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
培养联系人考察意见
2015/06/01 职场文书
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android