关于Pyinstaller中add-data的作用?
我用pygame1.9.2
写好了一个game.py
和一堆其他的py文件,然后直接双击可以打开。但是程序需要一张图片,ship.bmp
,于是我的game.spec
里面是这样写的:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['game.py', 'game_functions.py', 'message.py', 'settings.py', 'ship.py'],
pathex=['C:\\package'],
binaries=[],
datas=[('ship.bmp', 'img')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='game',
debug=False,
strip=False,
upx=True,
console=True )
最后运行程序,GUI无法显示,显示traceback:
Traceback (most recent call last):
File "game.py", line 26, in <module>
File "game.py", line 13, in run_game
File "ship.py", line 11, in __init__
pygame.error: Couldn't open ship.bmp
Failed to execute script game
我在打包的时候写的是
pyinstaller -F --add-data="ship.bmp;img" game.py
这样对吗?而且pyinstaller并没有给我创建一个img文件夹啊,我应该自己创建一个吗?创建到哪儿?(我电脑上的ship.bmp
和game.spec
在同一个目录下。)
系统:Windows 10
python 3.5
pygame 1.9.2
pyinstaller 3.2.1
更新:我把ship.bmp放到了和game.exe同一目录下就可以了。那我就想问--add-data="ship.bmp;img"
这里的img有什么用吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)