Python Windows下的pysox

Python Windows下的pysox,python,windows,building,sox,Python,Windows,Building,Sox,我正在使用PyQT4绑定的Python编写一个应用程序,它应该是多平台的。 我使用的Python版本是3.3。 我无法在MS WindowsXP下构建pysox(Python的SoX绑定),尽管我已经一步一步地做到了: -使用VC++10.0 Express从源代码编译Sox 14.4.1。 -编译Cython以编译pysox。 现在它无法构建,说没有找到strings.h(如果我将SoX源代码与libsox.lib放在pysox对应的目录中),然后-找不到其他东西,等等。 简而言之,它无法编译

我正在使用PyQT4绑定的Python编写一个应用程序,它应该是多平台的。 我使用的Python版本是3.3。 我无法在MS WindowsXP下构建pysox(Python的SoX绑定),尽管我已经一步一步地做到了: -使用VC++10.0 Express从源代码编译Sox 14.4.1。 -编译Cython以编译pysox。 现在它无法构建,说没有找到strings.h(如果我将SoX源代码与libsox.lib放在pysox对应的目录中),然后-找不到其他东西,等等。 简而言之,它无法编译,因为它继续要求特定于Linux的头文件,而我现在不需要,因为我在Windows下


问题是,有可能在Windows下编译pysox吗?或者我更愿意在Linux下编译它,然后将编译后的库导入Windows,因为Python是多平台的?

对于所有阅读本文并将脑袋撞到墙上的人: 不用麻烦了。 我不是说这是不可能的,但当这不容易时,就制定一个更简单的解决方案。 Sox是一个命令行工具。已经为您编译了最新的Windows版本,因此您绝对不需要
pysox
。 下面是一个Python 3示例,演示如何使用
sox.exe
,前提是它与应用程序一起分发,并且位于同一文件夹中:

    command = """sox.exe "{0}" """.format(FilePath)
    startupinfo = subprocess.STARTUPINFO()
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
    sox = subprocess.Popen(command, startupinfo = startupinfo)
您不会看到任何弹出窗口,几乎没有延迟,如果确实需要,您可以实现回调函数。 以下是可用命令的完整列表:


唯一的缺点是,例如,无法将
Ctrl+C
命令作为停止录制的子进程发送到sox.exe。因此,我最终使用了
pyaudio
进行录制,并使用
sox.exe
.wav
转换为带有特定参数的
.ogg

既然您有一个工作的sox,您是否尝试过从pip安装pysox?是否可以在Windows上进行?我需要Cygwin吗?我不知道。正如我所说,我只是尝试通过pip安装pysox,看看会发生什么。通过pip安装也需要编译