欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python3 关于pyinstaller在windows下打包.exe文件

程序员文章站 2022-06-04 15:04:57
...

在windows下把所需要的python3 pyinstaller打包exe文件,首先大家肯定都已经安装好了python环境,但是要提醒的一点就是 安装的python环境,不要使用python3 自带的虚拟环境。不要使用python3 自带的虚拟环境!不要使用python3 自带的虚拟环境!重要的事情说三边

1、通过pipy 安装pyinstaller

pip install pyinstaller

注意:安装Pyinstaller过程中是否自动安装pywin32和pypiwin32,没有安装使用以下命令安装 pywin32 pypiwin32

	pip install pywin32
	pip install pypiwin32

2、cd 到你的项目目录并执行以下命令

pyinstaller yourprogram.py

就可以看到build和dist文件夹,.exe就在文件夹dist目录下面
之后

pyinstaller yourprogram.spec

-F 选项可以打出一个exe文件,默认是 -D,意思是打成一个文件夹。
-w 选项可以打桌面程序,去掉命令行黑框
-i 可以设置图标路径,将图标放在根目录:

例如: 一个exe文件,去除命令行黑框,设置图标

pyinstaller -F -w -i app.ico yourprogram.py

3、关于spec文件

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['firstapp.py'],
             pathex=['G:\\python\\bjrecordbox'],
             binaries=[],
             datas=[("recordtool\\bridge.dll",'recordtool'),("recordtool\\brihttpsvr.dll",'recordtool'),("recordtool\\qnviccub.dll",'recordtool')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             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='firstapp',
          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='firstapp')

binaries 二进制文件
datas 打包进去的资源文件
(‘res’,‘res’) 文件夹到根目录的文件夹
(“recordtool\bridge.dll”,‘recordtool’) .dll文件到根目录的recordtool文件目录下面

遇到 ** ModuleNotFoundError: No module named ‘win32com’**

pip install pywin32 or pip install pypiwin32