2017-03-23 7 views
1

MIDI I/O를 처리하기 위해 'mido'라고 불렀던 Python 모듈로 그립을 잡으려고합니다. 내가 대화 형 인터프리터를 사용하려고하면Mido에서 get_output_names를 사용하려고 시도하는 NameError

기능 mido.get_output_names, 출력 포트를 사용할 수 있는지 말해해야하지만, 나는 다음과 같은 오류 (들)을 얻을 : 나는 다른 본 적이

Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from mido import * 
>>> mido.get_output_names() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'mido' is not defined 
>>> get_output_names() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'get_output_names' is not defined 
>>> 

을 비슷한 문제가있는 질문이지만 제안 된 해결책은 호출하기 전에 패키지 이름을 지정하는 것 (이 경우 'mido.')이지만 여기서 볼 수 있듯이 여기서 차이가 나는 것처럼 보입니다.

나는 또한 평 파일의 코드를 넣고 해석/그것을 실행하고 나는 (각각으로하고 '.mido'가없는 경우) 동일한 오류 메시지를 얻을 시도했습니다

사람은 나에게 일을 도와 드릴까요 내가 뭘 놓친 거지?

나는 비슷한 생각을 할 수있는만큼 NameError 메시지와 함께 과 많은 조합으로 port.get_output_names()을 시도했습니다.

+0

try'import mido' 그리고'dir (mido)'와 함께 사용 가능한 메소드를 볼 수 있습니다. 그러면 더 나아질 수 있습니다. – Richy

답변

4

당신이 빈 목록에 __all__을 설정하여 스타에게 * 수입을 방지 함을 볼 수 __init__.py file of the mido module에서 상대 : 이름 목록

# Prevent splat import. 
__all__ = [] 

__all__되어 확인합니다 []로 설정, from mod import *에 의해 포착 아무것도 가져 오지 않습니다.

또한 set_backend helper function을 사용하여 모듈 사전에 두 가지 추가 기능 (예 : get_output_names)을 설정합니다.어쩌면,

from mido import get_output_names 
get_output_names(...) 
+1

수행 할 수있는 일은 결코 없었습니다. o 감사합니다! !! !! – Socken

0

이상한 것 같다

그래서, 직접 mido을 가져오고 모듈 이름 앞에 붙여 get_output_names를 사용

또는 모듈에서 이름을 가져오고 직접 사용 다음과 같이 시도하십시오 :

import mido 

패키지에서 기능, 사용 후

import mido as md 

: 또한

md.get_output_names() 

:

mido.get_output_names() 

당신이이 방법으로 가져올 수 있습니다
이 - 패키지 디렉토리에 들어 가려고을, 파일을 살펴보고 - 가져올 때 터미널에서 패키지 도움 받기 :

import mido 
help(mido)