多个python文件打包成可执行的exe文件 您所在的位置:网站首页 怎样创建exe文件夹 多个python文件打包成可执行的exe文件

多个python文件打包成可执行的exe文件

2023-10-08 02:25| 来源: 网络整理| 查看: 265

python项目(包含多个python文件)打包成exe文件 首先,我的文件结构是这样的: 在这里插入图片描述 UTool是整个python项目文件,里面包含packs文件夹,rcat_images文件夹,主函数main.py 其中packs里面包含若干py文件,rcat里面是图片文件 在这里插入图片描述 此文是用pyinstaller完成的。 首先安装pyinstaller,pip install pyinstaller

1.将所有文件放于主文件夹下(这里是UTool),主文件夹里面可包含多个文件和文件夹

2.打开cmd,切换到UTool路径下,输入: 先在控制台中输入 chcp 65001(为了解决编码问题) 然后输入:pyi-makespec main.py 生成main.spec文件

制作spec文件

#-*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(['main.py', 'D:\\Study\\pythonProject\\UTool\\packs\\__init__.py', 'D:\\Study\\pythonProject\\UTool\\packs\\auto_open.py', 'D:\\Study\\pythonProject\\UTool\\packs\\clike.py', 'D:\\Study\\pythonProject\\UTool\\packs\\code_reader.py', 'D:\\Study\\pythonProject\\UTool\\packs\\complexity_analyse.py', 'D:\\Study\\pythonProject\\UTool\\packs\\control.py', 'D:\\Study\\pythonProject\\UTool\\packs\\csharp.py', 'D:\\Study\\pythonProject\\UTool\\packs\\gdscript.py', 'D:\\Study\\pythonProject\\UTool\\packs\\go.py', 'D:\\Study\\pythonProject\\UTool\\packs\\java.py', 'D:\\Study\\pythonProject\\UTool\\packs\\javascript.py', 'D:\\Study\\pythonProject\\UTool\\packs\\js_style_language_states.py', 'D:\\Study\\pythonProject\\UTool\\packs\\js_style_regex_expression.py', 'D:\\Study\\pythonProject\\UTool\\packs\\lua.py', 'D:\\Study\\pythonProject\\UTool\\packs\\objc.py', 'D:\\Study\\pythonProject\\UTool\\packs\\php.py', 'D:\\Study\\pythonProject\\UTool\\packs\\print_error.py', 'D:\\Study\\pythonProject\\UTool\\packs\\python.py', 'D:\\Study\\pythonProject\\UTool\\packs\\Resource_Calculate.py', 'D:\\Study\\pythonProject\\UTool\\packs\\ruby.py', 'D:\\Study\\pythonProject\\UTool\\packs\\rubylike.py', 'D:\\Study\\pythonProject\\UTool\\packs\\scala.py', 'D:\\Study\\pythonProject\\UTool\\packs\\script_language.py', 'D:\\Study\\pythonProject\\UTool\\packs\\swift.py', 'D:\\Study\\pythonProject\\UTool\\packs\\ttcn.py'], pathex=['D:\\Study\\pythonProject\\UTool'], binaries=[], datas=[('D:\\Study\\pythonProject\\UTool\\rcat_images','rcat_images')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=['matplotlib','numpy','pandas'], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, [], exclude_binaries=True, name='main', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, console=True ) coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, upx_exclude=[], name='main')

(1)第一个列表中写所有的py文件,与main一个文件夹的可以直接写文件名,不一个文件夹的需要写完整的文件路径。 (2)datas是中的元素是tuple类型,tuple的第一个参数是python项目中data文件(非py文件)的路径, 第二个参数是data在exe中保存此资源的文件夹名,要和项目中的文件夹名相同 (3)excludes里面可以填写不用的包名,这样打包以后会小点,例如:matplotlib等 (4)因为main.py是入口文件,所以被调用的其他py文件的当前路径都是main.py文件的当前路径。所以在源代码中就一定要把main.py放到最外层的项目文件夹中。在main.py中饮用了其他py文件,main.py文件要能在当前路径下找到其他文件。

如果出现:“ImportError: No module named 'sklearn.utils.cython_blas” 缺少包,加入就行。在hiddenimports中加入这个包 hiddenimports=[‘cython’, ‘sklearn’, ‘sklearn.utils._cython_blas’ ],

3.用配置好的spec文件制作exe: pyinstaller -D main.spec 使用-D制作出来的exe比使用-F的快很多,因为-F把所有dll文件都打包到一个exe中了(-F这时候exe会很大,加载变慢,推荐-D)。

4.生成后的exe在dist的main中 在这里插入图片描述 5.点击运行exe即可



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有