2017-09-25 8 views
0

많이 사용하는 함수가 포함 된 python 'library'모듈이 작성되었습니다. 내가from import 다른 함수 실행 추가

from 'script name' import * 

모든 기능을 사용하여 테스트 스크립트를 가져올 때마다 그러나 호출하는 테스트 스크립트에 두 번 실행

from 'library name' import * 

를 사용하여 테스트를 수행하는 스크립트에이 모듈을 가져 오기.

나는 이것이 수입 문제라고 확신한다. 그러나 그것을 고치기 위해 파이썬에 대해 충분히 알지 못한다.

예 : Library.py

doSomething() 
    print "Library" 

Test.py

from Library import * 
doSomething() 

이 출력됩니다 : "라이브러리" "라이브러리"

+0

- 재현 불가능 - 아마도 뭔가 빠졌습니다. – davedwards

답변

0

당신은 다음을 추가해야합니다 모듈 버튼을 사용하여 모듈을 스크립트로 실행하지 않아도됩니다.

if __name__ == '__main__': 
    execution code here 

을 실행하여 코드를 모듈로 실행할 때 파이썬에 알려줍니다. 그렇지 않으면, 그냥 모듈 네임 스페이스

Python's main docs '주요를'로드 최고 수준의 코드가 실행되는 범위의 이름입니다. 모듈 입력 은 표준 입력, 스크립트 또는 대화식 프롬프트에서 읽을 때 ''과 동일하게 설정됩니다.

모듈은 자신의 이름을 확인하여 주 범위에서 실행 중인지를 발견 할 수 있습니다.이 모듈은 스크립트 또는 python -m과 함께 실행될 때 모듈에서 조건부로 코드를 실행하는 공통 관용구를 허용합니다 가져올 때가 아닙니다.

+0

네임 스페이스를로드하려고합니다. 문제는 그것이 네임 스페이스를 두 번로드하는 것 같다는 것입니다. –

+0

이제는 테스트 그룹 가져 오기에서 테스트 그룹의 일부로 실행할 수 있기를 원합니다. –

+0

그래서 if __name__ == '__main__'을 추가하십시오 : pass '라이브러리 모듈에서, 그리고 테스트 스크립트는 같은 문장을 추가하지만,'pass' 문 대신에 명령어를 삽입하십시오. – Vinny

0

파이썬의 로깅 기능과 관련된 문제였습니다. logger.getLogger (이름)