赞
踩
pyinstaller 能够在 Windows、Linux、Mac 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。
PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac 和 Linux 上使用,但是并不是跨平台的,而是说要是希望打包成 .exe 文件,需要在Windows 系统上运行 PyInstaller 进行打包工作;打包成 Mac App,需要在 Mac OS 上使用,Linux 也一样,不能在一端上打另外两端的包,还有 Mac m1 的打包不能给 Mac intel 的使用,相反也一样,运行会报错:Error:Bad CPU type in executable。
pyinstaller 不需要自己写 setup.py 文件,只需要在工作目录中输入打包命令即可。最后会生成 build 和 dist 文件夹,启动文件在 dist 文件夹下。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
pyinstaller [项目启动文件]
其他参数(按需求选择):
pyinstaller -D main.py -i ./sources/人工智能.ico -w
- # -*- mode: python ; coding: utf-8 -*-
-
-
- block_cipher = None
-
-
- a = Analysis(
- ['main.py'],
- pathex=[],
- binaries=[],
- datas=[],
- hiddenimports=[],
- hookspath=[],
- hooksconfig={},
- 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='main',
- debug=False,
- bootloader_ignore_signals=False,
- strip=False,
- upx=True,
- console=False,
- disable_windowed_traceback=False,
- argv_emulation=False,
- target_arch=None,
- codesign_identity=None,
- entitlements_file=None,
- icon=['sources\\人工智能.ico'],
- )
- coll = COLLECT(
- exe,
- a.binaries,
- a.zipfiles,
- a.datas,
- strip=False,
- upx=True,
- upx_exclude=[],
- name='main',
- )
下面是针对main.spec的说明:
- # -*- mode: python ; coding: utf-8 -*-
-
-
- block_cipher = None
-
-
- a = Analysis(
- ['main.py'],
- pathex=[], # 此列表为项目绝对路径
- binaries=[],
- datas=[], # 此处可以添加静态资源,格式为('SOURCE_DIR/TO/YOUR_FILES_PATH','TARGET_DIR_PATH/')
- hiddenimports=[],
- hookspath=[],
- hooksconfig={},
- 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='main', # 程序exe的名称
- debug=False,
- bootloader_ignore_signals=False,
- strip=False,
- upx=True, # 打包的时候进行压缩,False表示不压缩
- console=False, #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可
- disable_windowed_traceback=False,
- argv_emulation=False,
- target_arch=None,
- codesign_identity=None,
- entitlements_file=None,
- icon=['sources\\人工智能.ico'], #程序图标,要绝对路径,也可以不是相对路径
- )
- coll = COLLECT(
- exe,
- a.binaries,
- a.zipfiles,
- a.datas,
- strip=False,
- upx=True,
- upx_exclude=[],
- name='main', #程序文件夹名称
- )
注意:要将源码复制到dist目录里,不然程序无法运行!!!
- # -*- mode: python ; coding: utf-8 -*-
-
-
- block_cipher = None
-
-
- a = Analysis(
- ['main.py'],
- pathex=[], # 此列表为项目绝对路径
- binaries=[],
- datas=[('./src/','./src'),# 将源码输入进dist文件夹中,以保证程序正常运行
- ('./sources/','./sources/'), # 静态资源
- ('./source_dir/美女.png','./target_dir/')],# 此处可以添加静态资源,格式为('SOURCE_DIR/TO/YOUR_FILES_PATH','TARGET_DIR_PATH/')
-
- hiddenimports=[],
- hookspath=[],
- hooksconfig={},
- 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='Speech演讲专用软件', # 程序exe的名称
- debug=False,
- bootloader_ignore_signals=False,
- strip=False,
- upx=True, # 打包的时候进行压缩,False表示不压缩
- console=False, #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可
- disable_windowed_traceback=False,
- argv_emulation=False,
- target_arch=None,
- codesign_identity=None,
- entitlements_file=None,
- icon=['sources\\人工智能.ico'], #程序图标,要绝对路径,也可以不是相对路径
- )
- coll = COLLECT(
- exe,
- a.binaries,
- a.zipfiles,
- a.datas,
- strip=False,
- upx=True,
- upx_exclude=[],
- name='WebBrowserSpeech', #程序文件夹名称
- )
pyinstaller main.spec
大功告成!!!
pyinstaller -D main.py -w -i ./sources/人工智能.icns
- # -*- mode: python ; coding: utf-8 -*-
-
-
- block_cipher = None
-
-
- a = Analysis(
- ['main.py'],
- pathex=[],
- binaries=[],
- datas=[('./source_dir/美女.png','./target_dir/')],
- hiddenimports=[],
- hookspath=[],
- hooksconfig={},
- 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='Speech演讲专用软件',
- debug=False,
- bootloader_ignore_signals=False,
- strip=False,
- upx=True,
- console=False,
- disable_windowed_traceback=False,
- argv_emulation=False,
- target_arch=None,
- codesign_identity=None,
- entitlements_file=None,
- icon=['sources/人工智能.icns'],
- )
- coll = COLLECT(
- exe,
- a.binaries,
- a.zipfiles,
- a.datas,
- strip=False,
- upx=True,
- upx_exclude=[],
- name='WebBrowserSpeech',
- )
- app = BUNDLE(
- coll,
- name='WebBrowserSpeech.app',
- icon='./sources/人工智能.icns',
- bundle_identifier=None,
- )
pyinstaller main.spec
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。