Python常用模块:pyinstaller打包生成exe
Posted 风流 少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python常用模块:pyinstaller打包生成exe相关的知识,希望对你有一定的参考价值。
一:demo
二:代码
2.1 目录
- assets 资源目录,用于防止静态资源,如图片、图标或者ini配置文件等。
- config:放一些常用的配置文件。
- utils:工具类包。
- venv:虚拟环境
- build/dist/.spec:打包exe文件时自动生成的。
2.2 代码
config/iniconfig.py
import os
import configparser
def get_config():
base_path = os.path.dirname(os.path.abspath(__file__))
config_path = os.path.join(base_path, '..\\\\config\\\\config.ini')
if not os.path.exists(config_path):
config_path = '..\\\\config.ini'
config = configparser.ConfigParser()
config.read(config_path, encoding='utf-8')
title = config['window']['title']
geometry = config['window']['geometry']
version = config['window']['version']
return title, geometry, version
md5tools.py
import hashlib
import tkinter as tk
from utils import iniconfig
(title, geometry, version) = iniconfig.get_config() # 创建窗口
window = tk.Tk() # 窗口标题
window.title(title + version)
window.resizable(width=False, height=False) # 窗口大小
window.geometry(geometry)
tk.Label(window, text="请输入内容:", height=2, font=('Arial', 20)).place(x=0, y=4)
input_text = tk.Entry(window, border=2, highlightcolor='red', highlightthickness=1)
input_text.place(x=160, y=20, width=390, height=40)
md5Var = tk.StringVar()
def onclick():
content = input_text.get()
md5Var.set(hashlib.md5(content.encode(encoding='UTF-8')).hexdigest())
print(content)
tk.Button(window, text='确定', width=10, height=2, command=onclick).place(x=560, y=15)
tk.Label(window, textvariable=md5Var, width=30, height=2, font=('Arial', 20), fg='red').place(x=140, y=80)
window.mainloop()
三:生成exe
pip install pyinstaller
参数:
- -F: 打包后只生成一个exe文件
- -D: 默认选项,创建一个目录,包含exe文件和大量的依赖文件如.dll等(一般调试的时候使用)
- -c:默认选项,console带控制台(打包报错的时候会显示具体的错误信息,如果打包失败时可以临时用这个选项看一下错误)
- -w: 不带控制台(一般使用)
- -p: 搜索路径,让其找到对应的库
- -i: icon 设置图标
- -n: exe文件名
3.1 方式一
如果打包不需要依赖资源文件可以直接打包。
pyinstaller -F -w -n md5tool -i D:\\PycharmProjects\\mytools\\assets\\python.ico md5tools.py
3.2 方式二
如果打包需要依赖资源文件需要通过.spec文件进行打包。
# 1. 先生成build/dist/.spec文件,然后再删除掉build和dist目录
pyinstaller -F -w -n md5tool -i D:\\PycharmProjects\\mytools\\assets\\python.ico md5tools.py
# 2. 修改md5tools.spec文件的配置
# md5tools.py表示要打包的文件
# datas表示要打包的资源文件,第一项为资源文件所在的文件夹, 第二个值‘.’代表当前路径
a = Analysis(
['md5tools.py'],
datas=[('assets', '.'), ('config', '.')],
)
# exe配置项,主要修改文件名、关闭控制台、配置图标
exe = EXE(
name='md5tools',
console=False,
icon='D:\\\\PycharmProjects\\\\mytools\\\\assets\\\\python.ico'
)
# 3. 通过.spec文件生成exe文件
pyinstaller md5tools.spec
以上是关于Python常用模块:pyinstaller打包生成exe的主要内容,如果未能解决你的问题,请参考以下文章
Linux下,Python项目包含多个模块以及图片包,跪问如何用pyinstaller将其打包在一起?
python 中 使用 pyinstaller 打包的exe程序如何调用外部模块?
Python零基础入门篇 · 41:内置模块的使用二:pyinstaller模块(打包py文件以及更换图标)hashlib模块(加密)