pyinstaller使用注意事项及使用技巧
1、安装pyinstaller前要先安装pywin32下载地址为,安装对应版本(32位或64位) https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/
1、pyinstaller安装可以直接使用pip工具安装,pip install pyinstaller
2、安装后,使用时可以直接在命令行使用pyinstaller命令
usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME] [--add-data <SRC;DEST or SRC:DEST>] [--add-binary <SRC;DEST or SRC:DEST>] [-p DIR] [--hidden-import MODULENAME] [--additional-hooks-dir HOOKSPATH] [--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES] [--key KEY] [-d {all,imports,bootloader,noarchive}] [-s] [--noupx] [--upx-exclude FILE] [-c] [-w] [-i <FILE.ico or FILE.exe,ID or FILE.icns>] [--version-file FILE] [-m <FILE or XML>] [-r RESOURCE] [--uac-admin] [--uac-uiaccess] [--win-private-assemblies] [--win-no-prefer-redirects] [--osx-bundle-identifier BUNDLE_IDENTIFIER] [--runtime-tmpdir PATH] [--bootloader-ignore-signals] [--distpath DIR] [--workpath WORKPATH] [-y] [--upx-dir UPX_DIR] [-a] [--clean] [--log-level LEVEL] scriptname [scriptname ...]
3、常用命令 pyinstaller -F xxx.py 打包成一个exe文件,建议使用spec文件配置,避免没有--hidden-import依赖包而运行失败的情况,具体使用办法为:例如先使用 pyinstaller -F xxx.py 运行一次,生成xxx.spec文件,然后使用文本编辑器打开spec文件进行编辑,特别注意的是
pathex 处需要增加引入包的地址,也就是命令运行工具的--add-binary,一般加入venv等生成虚拟环境的site-package文件夹
hiddenimports需要增加需要引入的依赖包的包名,如hiddenimports=['xlrd','xlwt','selenium','xlutils.copy','datetime','random','time','sys.argv']
下面是一个spec的配置实例(可以通过运行一次pyinstaller -F xx.py获得):
# -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(['robot.py'], pathex=['C:\\Users\\Administrator\\Desktop\\test','C:\\Users\\Administrator\\Desktop\\test\\venv\\Lib\\site-packages'], binaries=[], datas=[], hiddenimports=['xlrd','xlwt','selenium','xlutils.copy'], 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, a.binaries, a.zipfiles, a.datas, [], name='robot', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir='C:\\Users\\Administrator\\Desktop\\test', console=True )
评论