모듈이 어느 위치(path)에 있는지 알아내고 싶습니다

모듈이 수정되거나 바뀐걸 알아내고 싶습니다. 마지막 수정일을 알아내는 방법은 알고 있는데 모듈이 어느 위치에 있는지 알아내려면 어떻게 해야 하나요?

1답변

  • 좋아요

    1

    싫어요
    채택취소하기

    1. modulename.__file__

    modulename.__file__은 모듈(.pyc)이 로드된 path를 알려줍니다.

    import a_module
    print a_module.__file__
    
    #또는
    import os
    path = os.path.abspath(amodule.__file__)
    

    모듈의 디렉토리가 바뀐 걸 알고 싶을 때는 다음과 같이 써주면 됩니다.

    import os
    path = os.path.dirname(amodule.__file__)
    

    2. inspect 모듈

    inspectmodule이나 class, methods, functions, tracebacks, frame objects, code objects 같은 live object에 대한 정보를 제공합니다.

    대표적으로 class의 멤버 변수/함수, 함수의 파라미터 형식, 메소드의 소스코드 등을 예로 들 수 있습니다.

    import os
    import inspect
    print(inspect.getfile(os)) #'/usr/lib64/python2.7/os.pyc'
    print(inspect.getfile(inspect)) #'/usr/lib64/python2.7/inspect.pyc'
    os.path.dirname(inspect.getfile(inspect)) #'/usr/lib64/python2.7'
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.