0
我已經用tkinter和winsound在Python中構建了一個簡單的音板。音板使用一些.gif和.wav數據文件,這些文件與python腳本本身包含在同一個目錄中。我寫了使用cx_Freeze以下setup.py文件:cx_Freeze不包括指定的文件
import sys
from cx_Freeze import Executable, setup
build_exe_options = {'packages':['winsound', 'tkinter'], 'include_files':['battle.gif', 'Battle.wav', 'flag.gif', 'icon.ico', 'ocean.gif', 'Ocean.wav', 'shanty.gif', 'Shanty.wav', 'tavern.gif', 'Tavern.wav']}
base = None
if sys.platform == "win32":
base = 'Win32GUI'
setup(name='Savage Worlds Soundboard',
version='0.1',
description='Soundboard for Pirates of the Spanish Main campaign',
options = {'build.exe':build_exe_options},
executables = [Executable("Savage_Worlds_Soundboard.py", base=base)]
)
當我建立與Python程序的setup.py建立在命令提示符下,它會在正常的目錄中生成文件夾。然而,當我打開C:X \建立\ exe.win-amd64-3.4 \ Savage_Worlds_Soundboard(可執行文件),我收到以下錯誤:
cx_Freeze: Python error in main script
---------------------------
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
exec(code, m.__dict__)
File "Savage_Worlds_Soundboard.py", line 5, in <module>
File "C:\Python34\lib\tkinter\__init__.py", line 3421, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:\Python34\lib\tkinter\__init__.py", line 3377, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "ocean.gif": no such file or directory
任何想法?在我看來,像cx_Freeze沒有包含我在setup.py中指定的附加數據文件。也許我錯誤地寫了安裝文件?
只是一個猜測,但您可能需要將圖像移動到構建目錄,以便可執行文件可以找到它們。我懷疑cx_Freeze會將圖像打包到可執行文件中。 – user2027202827
這工作......我覺得很愚蠢。 謝謝!你可以發佈這個答案。 –
不用擔心,使用wxWidgets和C++構建時遇到同樣的麻煩:) – user2027202827