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的迭代器与生成器实例详解
Jul 16 Python
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
python 执行shell命令并将结果保存的实例
May 11 Python
flask入门之表单的实现
Jul 18 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 Python
Python如何读取、写入CSV数据
Jul 28 Python
python基础入门之字典和集合
Jun 13 Python
Python进行区间取值案例讲解
Aug 02 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中MD5函数使用实例代码
2008/06/07 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
PHP开发注意事项总结
2015/02/04 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
php微信开发之图片回复功能
2018/06/14 PHP
Mootools 1.2教程 事件处理
2009/09/15 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
文艺晚会主持词
2014/03/24 职场文书
运动会宣传口号
2014/06/09 职场文书
4s店活动策划方案
2014/08/25 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js