2014-04-23 1 views
0

Eclipse에서 PyDev를 사용하고 파이썬 프로젝트의 사용자 정의 소스 경로가 src/main/python /입니다. 경로가 PythonPath에 추가됩니다.PyDev : 미정의 수입

이제 모든 설치 스크립트가없는 pyMIR : https://github.com/jsawruk/pymir 라이브러리를 사용하고 싶습니다. 그래서 그것을 다운로드하여 dired를 Pydev 패키지로 프로젝트에 포함 시켰습니다. pyMIR의 전체 경로는 src/main/python/music/pymir입니다.

음악 패키지 (src/main/python/music)에서 이제 라이브러리를 사용하여 다음을 통해 가져오고 싶습니다. from pymir import AudioFile. 오류가 없으므로 AudioFile 클래스가 발견됩니다.

다음에 나는 AudioFile.open(path)을 통해 오디오 파일을 읽고 싶습니다. "가져 오기에서 정의되지 않은 변수 : 열기"라는 오류 메시지가 나타납니다. 그러나 스크립트를 실행하면 오류가 발생하지 않습니다.

또한 pyMIR 패키지를 보면 미해결의 가져 오기 오류가 있습니다. 예를 들어, AudioFile 클래스의 from pymir import Frame은 "Unresolved import : Frame"을 from music.pymir import Frame으로 변경하면 오류가 사라지지만 실행될 때 오류가 발생합니다. "type object 'Frame'특성에 ' 틀'".

  1. 다른 가져 오기 또는 Pydev 패키지를 포함하는 방법을 변경해야합니까?

  2. 표준 경로 "src"로 새 프로젝트를 만들 때 "해결되지 않은 impor"오류가 나타나지 않습니다. 차이는 어디입니까 src/main/python? 왜냐하면 소스 폴더의 경로를 src/main/python으로 변경했기 때문입니다.

미리 감사드립니다.

답변

1

pymir 패키지를 다운로드하여 설치하려고했습니다. 나를 위해 작동 하나 명의 프로젝트 구조가있다 :

project/music/ 
project/music/pymir/ 
project/music/pymir/AudioFile 
project/music/pymir/... 
project/music/audio_files/01.wav 
project/music/test.py 

test.py가 :

import numpy 
from pymir import AudioFile 
filename = "audio_files/01.wav" 
print "Opening File: " + filename 
audiofile = AudioFile.open(filename) 
frames = audiofile.frames(2048, numpy.hamming) 
print len(frames) 

내가 '음악'패키지 밖으로 'test.py'를 이동 한 경우, 내가 발견하지 않은 그것을 작동하게하는 방법. 프로젝트 구조가 민감하고 까다로운 이유는 필자 의견으로는 pymir 패키지가 잘 구성되어 있지 않기 때문입니다. 예를 들어 작성자는 모듈 이름을 'Frame.py'로 설정하고 모듈 내부의 클래스 이름은 '프레임'으로 지정됩니다. 그런 다음 "__init__.py"에서 코드는 "프레임 가져 오기 프레임에서"와 같습니다. 그리고 "AudioFile.py"에서 코드는 "from pymir import Frame"입니다. 나는 정말로 현재의 pymir의 명명과 구조가 지저분하다고 생각한다. 주의 깊게

+0

가 좋아, 지금은 파이썬 경로로 음악 패키지를 추가 한 작동합니다 */SRC가/주/파이썬/음악 *. 그런 다음 pymir 클래스에서 오류가 사라집니다. 하지만 내 수업에서, */src/main/python/music/AudioFeatures.py * 아래에서 pyMIR을 사용하면 미해결 된 가져 오기 오류가 남아 있습니다. 또한'sys.path.append ('music')'와 함께. –

+0

구조가 "/src/main/python/music/pymir/AudioFeatures.py"라고 생각하나요? 나는 '음악'아래에 전체 '피미르'를 넣는 것을 의미합니다. 그런 다음 파이썬 경로를 추가하고 "pymir import AudioFile"로 사용하십시오. 작동합니까? – ZZY

+0

pyMIR 항목은 */src/main/python/music/pymir/*에 있습니다. pyMIR을 사용하는 코드는 */src/main/python/music *의 한 레벨 위에 있습니다. */src/main/python/music * 경로를 PYTHONPATH에 추가하고'from pymir import AudioFile'을 사용합니다. 오류 : "가져 오기에서 가져온 변수 : 열기"정적 열기 방법에 문제가 있습니까? –

0

기본 폴더 위치에 "__init__.py" 빈 파일을 추가하려면이 패키지를 사용 제안하고