Проблема
Я пытаюсь превратить файл python в EXE файл, однако я, кажется, сталкиваюсь с одной и той же проблемой каждый раз, будь то CX_Freeze или Pyinstaller. Я просто попытался использовать pyinstaller, и я сделал EXE файл, используя команду
pyinstaller --onefile thepyfile
и все работает отлично. Он создает exe в файле dist. Однако, когда я открываю exe, он показывает мне окно команд, а затем быстро отключается. Мне удалось захватить ошибку, полученную с помощью экрана печати, и он сказал: Ошибка pygame: Не удалось открыть изображение family.jpg. Я использую модуль pygame.
Что я пробовал?
Iv убедился, что изображения находятся в одном каталоге и в той же папке, что и мой файл python. Моя .py отлично работает, когда я запускаю ее, это просто exe. В любом случае, просто чтобы убедиться, что нет проблем с загрузкой изображений в пути, к которому я присоединился к пути, используя
os.path.join
Снова он работал для файла py, но он не работал в exe. Я также проверил, правильно ли я установил pyinstaller, и он работает для других exe-программ, которые не включают импорт изображений. Я также попытался создать папку, а затем использовать
os.path.join(folder,file)
но опять же он работал в файле py, но не с pyinstaller/cx_freeze exe.
Ключ?
Пока я работал с CX__freeze, я обнаружил, что pygame не может импортировать изображение. Однако это дало мне больший случай с ошибкой, но не уверен, полезно ли это, но может быть ключом?
Пожалуйста, помогите
Iv столкнулся с этой проблемой уже более 5 недель и отчаянно нуждается в помощи.
Некоторый код
Вот как я импортирую изображение (снова работает в файле py, но не exe)
family_image = pygame.image.load(os.path.join('folder',"family.jpg")).convert()
И если это необходимо, мой cx_Freeze setup.py, который также делает exe файл еще, дает мне изображение, которое может быть загружено ошибкой.
import cx_Freeze
import sys
import pygame
import random
import math
import os
os.environ['TCL_LIBRARY'] = "C:\\Program Files\\Python35\\tcl\\tc18.6"
os.environ['TK_LIBRARY'] = "C:\\Program Files\\Python35\\tcl\\tk8.6"
base = None
if sys.platform == 'win32':
base = "Win32GUI"
executables = [cx_Freeze.Executable("Treg&Shelly.py",shortcutName="Cards",shortcutDir="DesktopFolder",base = base)]
cx_Freeze.setup(
name = "HAPPY NEW YEARS",
options = {"build_exe":{"packages":["pygame","random","math"],"excludes" : ['tcl','ttk','tkinter','Tkinter'],"include_files":["family.jpg","newyears.png"]}},
version = "0.01",
description = "New Years Card",
executables = executables
)
Примечание
Все мои изображения находятся в отдельной папке, но доступны моему файлу python.
Также я использую python 3.5
Спасибо за любой ответ