小游戏中包含多个文件夹,以及图片、json文件等,对这种package进行打包,
文件目录如下:
目录中包含多层级。
开始打包:
pyinstaller -F -w main1.py
在main1.py的同级目录下会生成main1.spec。编辑该文件:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
SETUP_DIR = 'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master'
a = Analysis(['main1.py', #所有能用到的py文件
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\constants.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\main.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\setup.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\tools.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\components\\box.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\components\\brick.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\components\\coin.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\components\\enemy.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\components\\info.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\components\\player.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\components\\powerup.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\components\\stuff.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\states\\level.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\states\\load_screen.py',
'D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master\\source\\states\\main_menu.py'
],
pathex=['D:\\pyfile\\PythonSuperMario-master\\PythonSuperMario-master'],
binaries=[],
datas=[(SETUP_DIR + '\\resources','\\resources'),(SETUP_DIR + '\\resources\\demo','\\resources\\demo'),(SETUP_DIR + '\\resources\\graphics','\\resources\\graphics'),
(SETUP_DIR + '\\source\\data','\\source\\data'), (SETUP_DIR + '\\source\\data\\maps','\\source\\data\\maps'), (SETUP_DIR + '\\source\\data\\player','\\source\\data\\player')], # 其他文件所在目录,包含多层时,需要建立多层目录
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,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main1',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
所有文件准备好之后,再次执行
pyinstaller main1.spec
最后生成的exe文件在dist文件里面。