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 相关文章推荐
Python3实现从指定路径查找文件的方法
May 22 Python
Python守护进程和脚本单例运行详解
Jan 06 Python
python初学之用户登录的实现过程(实例讲解)
Dec 23 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
详解Numpy中的广播原则/机制
Sep 20 Python
python实现Flappy Bird源码
Dec 24 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
Python 3 判断2个字典相同
Aug 06 Python
python下载库的步骤方法
Oct 12 Python
TensorFlow tensor的拼接实例
Jan 19 Python
浅析Python __name__ 是什么
Jul 07 Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 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中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
图片自动更新(说明)
2006/10/02 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
bpython 功能强大的Python shell
2016/02/16 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
基于python log取对数详解
2018/06/08 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
浅谈Python反射 & 单例模式
2019/03/21 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
银行转正自我鉴定
2014/09/29 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
三严三实学习心得体会
2014/10/13 职场文书
医院科室评语
2015/01/04 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技