2013-07-24 11 views
1

나는 멀티 플랫폼이어야 PyQT4 바인딩과 함께 파이썬을 사용하여 응용 프로그램을 작성하고 있습니다. 내가 사용하는 Python 버전은 3.3입니다. MS WindowsXP에서 pysox (Python 용 SoX 바인딩)를 빌드하지 못했습니다. 단계별로 다음을 관리했습니다 : - VC++ 10.0 Express를 사용하여 소스에서 Sox 14.4.1을 컴파일하십시오. - pysox를 컴파일하도록 Cython을 컴파일하십시오. 지금은 strings.h가 발견되지 않는다고 말하면서 빌드가 실패합니다 (libsox.lib와 함께 soso 소스를 pysox의 해당 디렉토리에 배치하면). 그 밖의 다른 것을 찾을 수 없습니다. 간단히 말해서, 필자는 Windows가 있기 때문에 지금 당장 필요하지 않은 Linux 관련 헤더를 계속 요청하기 때문에 컴파일에 실패합니다.Windows에서 pysox

질문은 Windows AT ALL에서 pysox를 컴파일 할 수 있습니까? 아니면 파이썬이 멀티 플랫폼이기 때문에 리눅스에서 컴파일하고 컴파일 된 라이브러리를 Windows로 가져와야합니까?

+0

작업 Sox가 있으므로 pip에서 pysox를 설치하려고 했습니까? –

+0

Windows에서이 작업을 수행 할 수 있습니까? Cygwin이 필요합니까? –

+0

나는 모른다. 내가 말했듯이, 나는 pip를 통해 pysox를 설치하고 어떤 일이 일어나는지 보려고합니다. –

답변

0

누구나 이것을 읽고 벽에 머리를 두드리는 사람들에게 : 귀찮게하지 마십시오. 나는 그것이 가능하지 않다는 말은 아니지만 쉬운 일이 아니라면, 더 쉬운 해결책을 만들어라. Sox는 명령 줄 도구입니다. 이미 최신 Windows 버전이 컴파일되어 있으므로 pysox이 필요하지 않습니다. 다음은이 응용 프로그램과 함께 배포되는 제공 sox.exe을 사용하는 방법 파이썬 3 예제와 같은 폴더에 있습니다

command = """sox.exe "{0}" """.format(FilePath) 
    startupinfo = subprocess.STARTUPINFO() 
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW 
    sox = subprocess.Popen(command, startupinfo = startupinfo) 
당신은 어떤 팝업이 표시되지 않습니다

, 지연없이 거의가있을 것입니다, 당신 필요한 경우 콜백 함수를 구현할 수 있습니다. 다음은 사용할 수있는 명령의 전체 목록은 다음과 같습니다 http://sox.sourceforge.net/sox.html

유일한 나쁜 것은 예를 들어, 녹음을 중지 서브 프로세스로 sox.exe하는 Ctrl+C 명령을 전송하는 것이 가능하지 않다는 것이다. 따라서, 녹음을 위해 pyaudio을 사용하고, 특정 매개 변수를 사용하여 .wav.ogg으로 변환하기 위해 sox.exe을 사용했습니다.