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 从远程服务器下载东西的代码
Feb 10 Python
安装Python的web.py框架并从hello world开始编程
Apr 25 Python
启动Atom并运行python文件的步骤
Nov 09 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
python3转换code128条形码的方法
Apr 17 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
Django  ORM 练习题及答案
Jul 19 Python
django如何自己创建一个中间件
Jul 24 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
django 模版关闭转义方式
May 14 Python
Flask response响应的具体使用
Jul 15 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 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
php判断访问IP的方法
2015/06/19 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
python中函数传参详解
2016/07/03 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
Django 外键的使用方法详解
2019/07/19 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
python多线程使用方法实例详解
2019/12/30 Python
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
生产经理的自我评价分享
2013/11/07 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
市场营销调查计划书
2014/05/02 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
python requests模块的使用示例
2021/04/07 Python
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
漫画《催眠麦克风-Dawn Of Divisions》第二卷PV公开
2022/04/05 日漫
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle