多个py文件生成一个可运行exe文件
一、概述
目前有一个python脚本,需要在别的电脑中运行,安装python环境太麻烦,封装成exe文件,运行比较方便。
二、演示
环境说明
python版本:3.7.9
操作系统:windows 10
安装模块
pip3 installer pyinstaller
封装
新建目录test,目录结构如下:
./
├── conf.py
└── test.py
conf.py
# !/usr/bin/python3 # -*- coding: utf-8 -*- people_dict = [ { "name":"张三", "age":'23' }, { "name":"李四", "age":'21' } ]
test.py
# !/usr/bin/python3 # -*- coding: utf-8 -*- import conf import json with open('ret.txt',encoding='utf-8',mode='w') as f: f.write(json.dumps(conf.people_dict))
打开cmd窗口,进入test目录,执行:
pyinstaller -F -c test.py
注意:test.py是主程序
输出:
... 7908 INFO: checking EXE 7909 INFO: Building EXE because EXE-00.toc is non existent 7912 INFO: Building EXE from EXE-00.toc 7913 INFO: Appending archive to EXE E:\python_script\test\dist\test.exe 7921 INFO: Building EXE from EXE-00.toc completed successfully.
它会创建2个目录,分别是build和dist。
进入dist,里面有一个test.exe程序,双击打开即可。
运行之后,会创建一个文件ret.xt。这个是py程序做的,用来判断程序是否执行。
打开文件,查看内容
ok,程序运行正常。
总结
将py文件,打包成exe还是很方便的。注意-c参数,指定为主程序即可。
对于读取动态配置文件的需求,不能将配置文件定义为py文件,因为封装成exe之后,就无法修改了。
解决方案就是,将配置文件改成json文件,然后主程序读取json文件,并使用json.loads()转换一下,就可以了。
需要特别注意json文件和exe文件,在同一目录。
本文参考链接: