使用Pyinstaller创建的可执行文件无法打开图像

时间:2017-07-15 15:02:54

标签: python pygame pyinstaller

我使用Pygame模块编写了一个程序,并尝试使用它创建一个.exe,我可以与朋友分享。在我的Python脚本目录中,我有一个包含.py文件的文件夹和一个名为images的文件夹,其中包含程序中使用的图像。该程序可以正常工作.py,但只要我通过pyinstaller将其转换为.exe它就无法工作。

以下是最低限度的功能示例:

import os
import pygame

def load_image(name):
    fullname = os.path.join("images", name)
    image = pygame.image.load(fullname)
    return image

pygame.init()
screen = pygame.display.set_mode((500,500))
image = load_image("image.bmp")
clock = pygame.time.Clock()

while True:
    screen.blit(image,(0,0))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

我使用pyinstaller --onefile example.py编译它。 然后我从命令执行并收到以下错误:

Traceback <most recent call last>:
    File "<string>", line 11 in <module>
    File "<string>", line 6 in load_image
pygame.error: Couldn't open images\image.bmp
example returned -1

我认为这与本地路径和全局路径有关,但无论我多么愚蠢,我似乎都无法启动并运行。

使用pyinstaller时,我需要更改什么才能打开图像文件?

1 个答案:

答案 0 :(得分:1)

您需要告诉pyinstaller有关数据文件的内容,例如:

pyinstaller --add-data 'images/image.bmp:.' --onefile example.py

来自(DOCS