我一直在努力让正在运行的应用程序将图像包含在其中-到目前为止,我只是手动将其包含在“ dist”文件夹中,并且工作正常。但是当我使用--onefile时,我希望将图像包含在独立应用程序中。
在StackOverflow上有一些类似的答案,但似乎没有一个可行,尤其是它似乎定期更改时。
下面是我所有的最新尝试-终端/命令行调用,以及我制作的.spec文件(来自各种教程)。请注意,我尚未向python脚本添加任何内容,并且该图标确实可以正常工作,因此我的文件结构没有问题。任何帮助都会很棒!
命令行:
pyinstaller --onefile --windowed DragDrop_27.spec
规范文件:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['DragDrop_27.py'],
pathex=['/Users/orange/PycharmProjects/imageMerge_01'],
binaries=[],
datas=[('bgimage.png', '.'), ('bgimageover.png', '.'), ('bgimagehover.png', '.'), ('bgimageprogress.png', '.'), ('play_logo.png', '.'), ('play_logoover.png', '.')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
a.datas += [('bgimage.png', '.','DATA'), ('bgimageover.png', '.','DATA'), ('bgimagehover.png', '.','DATA'), ('bgimageprogress.png', '.','DATA'), ('play_logo.png', '.','DATA'), ('play_logoover.png', '.','DATA')]
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='DragDrop_27',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=False )
app = BUNDLE(exe,
name='DragDrop_27.app',
icon='myicon.icns',
bundle_identifier=None)
答案 0 :(得分:0)
老实说,除非严格供个人使用,否则我认为不可能有独立版本的图像。我花了至少4个小时来尝试解决这个问题,但没有成功。您可以添加带有.ico文件的图像并将其与--onefile一起使用,但是除非其他人分别给他们提供图像文件,否则您将无法让其他人使用它。
pyinstaller --onefile --icon='Pig.ico' AnimalFacts.py