python - 无法将我的 UI 图像添加到 pyinstaller 构建(使用 .spec 文件)
问题描述
我一直在努力让我的功能应用程序将图像包含在其中 - 到目前为止,我只是手动将其包含在“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)
解决方案
老实说,我认为不可能有独立版本的图像,除非它是严格供个人使用的。我花了至少 4 个小时试图解决同样的问题,但没有奏效。您可以使用 .ico 文件添加图像并将其与 --onefile 一起使用,但除非您将图像文件单独提供给其他人,否则您将无法让其他人使用它。
pyinstaller --onefile --icon='Pig.ico' AnimalFacts.py
推荐阅读
- javascript - 如何从javascript中提取字符串
- python - python 在初始化超过 31 个元素时出现问题
- c - 检查是否设置或清除了多个位
- ios - 自定义嵌套对象的 Swift 编码技术?
- python - Django - csv.reader 和 save()/update
- python - 从图像中去除噪声,使其准备好使用 python 进行 tesseract ocr 并打开 cv
- java - startActivity :哪种方法更好,为什么?
- python - Ubuntu中的Python多处理内存泄漏,但在Windows中没有
- ruby-on-rails - has_and_belongs_to_many 关联的唯一性验证
- configuration - 如何使用 filebeat 读取 CPU 使用率、RAM 使用率和磁盘使用率?