当我编译以下脚本时:
# play.py
import os, re
import pygame.mixer
pygame.mixer.init(11025)
pygame.mixer.music.load('song.ogg')
pygame.mixer.music.play(-1)
os.system("PAUSE")
使用以下setup.py:
from cx_Freeze import setup, Executable
exe = Executable(
script="play.py",
)
setup(
executables = [exe]
)
通过:
python setup.py build
执行play.exe会出现以下错误:
Traceback (most recent call last):
File "C:\Python33\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 2
7, in <module>
exec(code, m.__dict__)
File "play.py", line 7, in <module>
pygame.error: Couldn't open 'song.ogg'
该脚本在编译之前工作正常,是的,我确实将 song.ogg 放入 exe 的目录中。顺便说一句 song.ogg 工作正常,我已经检查过了。有什么想法吗?
附注如果我将其更改为 song.wav 它工作正常,但 WAV 文件太大而无法使用。而且 MP3 也无法正常工作。
最佳答案
通过Process Explorer我发现我需要从 Python33\Lib\复制 libogg.dll、libvorbis.dll 和 libvorbisfile.dll site-packages\pygame 到我的卡住程序的目录。
关于python - 无法运行播放通过 cx_Freeze 编译的 OGG 文件的 Pygame 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15755921/