如何使用pyinstaller和Python中的sounddevice模块获得一个可用的EXE文件

如何使用pyinstaller和Python中的sounddevice模块获得一个可用的EXE文件

问题描述:

不幸的是pyinstaller与sounddevice模块有问题。如何使用pyinstaller和Python中的sounddevice模块获得一个可用的EXE文件

我写了下面的代码,但是当我使用pyinstaller制作EXE文件时,dist文件夹中的EXE文件不起作用。使用pyinstaller的制作过程成功完成,但EXE文件不起作用。

的代码是:

import sounddevice as sd 

fs=44100 
duration =2 # seconds 
print('Start') 
myrecording = sd.rec(duration * fs, samplerate=fs, channels=2,dtype='float64') 
sd.wait() 
print('play') 
sd.play(myrecording, fs) 
print('end') 
+0

pyinstaller的输出? – CarlosLannister

+0

此问题不完整。运行可执行文件时究竟发生了什么?你是如何使用pyinstaller的? – normanius

+0

您是否在控制台/命令窗口中运行可执行文件?您只需双击可执行文件即可看到有用的错误消息,您可能会错过。 – normanius

可能的问题是程序退出你做sd.play()后直?

尝试用sd.play(myrecording, fs, blocking=True)

而且替换该行,sounddevice是不是一个完美的库,所以你需要做一些额外的调整,以使其工作:

在你的目录中的EXE所在,请添加一个名为_sounddevice_data的目录,并将this file放入该文件夹(如果您使用的是Python 64位)或this(如果您使用的是Python 32位)。

尝试运行EXE,它应该工作!

希望这会有所帮助!

+0

@ A.Keshavarz我可以问一下,运行它时它会立即关闭吗? –

+0

我用sd.play(myrecording,fs,blocking = True)替换了sd.play(myrecording,fs),但它不再工作。我使用pyinstaller mycode.py在控制台/命令窗口中运行它。 –

+0

是的,它在运行时立即关闭本身 –