[파이썬] 파이썬내에서 패키지 확인 및 저장(터미널 필요없음)

반응형
    반응형

    파이썬의 패키지를 터미널에서 주로 확인했었습니다.
    문제는 제가 원하는 패키지가 설치되었는지 확인하려면 일일히 스크롤을 올려가며 확인해야하는 불편함이 있습니다. 물론 텍스트로 저장해서 찾아보면 할 수 있지만 파일 하나만들고 메모장 켜고 하는 시간을 줄일까 합니다.

    파이썬에서 패키지 찾기

    파이썬 내에서 패키지를 찾는 작업을 할 수 있는데 pkg_resorces라는 모듈을 임포트해야합니다.

    import pkg_resources
    import pandas as pd
    pd.DataFrame(sorted([(i.key,i.version) for i in pkg_resources.working_set]))

    컬럼 0은 패키지 이름이로 컬럼1은 패키지 버전을 의미합니다.
    데이터프레임으로 만들어놓으면 찾기가 쉬워집니다.
    예를 들어, tensorflow가 있는지 확인하려면 str.contains를 이용하면 됩니다.
    데이터프레임을 pack이라고 재정의를 하고 tensorflow를 찾아보겠습니다.

    pack = pd.DataFrame(sorted([(i.key,i.version) for i in pkg_resources.working_set]))
    pack[pack[0].str.contains('tensorflow')]   #0 컬럼에서 tensorflow 찾기

    tensorflow가 들어간 모든 패키지가 출력되는 걸 볼 수 있습니다.

    requirements.txt저장하기

    환경을 다른 기기에 옮기려면 패키지 정보가 txt로 있어야 합니다. 터미널에서의 작업 필요 없이 파이썬이 켜진 상태에서 바로 할 수 있습니다. 이미 데이터프레임으로 패키지 정보를 확보했으니 txt로 저장하는 건 식은 죽 먹기입니다. requirements.txt는 패키지 이름 == 버전으로 구성되어 있습니다.
    이에 맞춰서 저장해주면 됩니다.

    with open('requirements.txt','w',encoding='UTF-8') as f:
        for index in pack.index:
            f.write(pack.loc[index,0]+'=='+pack.loc[index,1]+'\n')

    requirements.txt를 이용해서 다른 기기에 옮기거나 패키지 업데이트하는 방법은 아래 포스팅에서 살펴보시기 바랍니다.

     

    마치며

    pkg_resources를 통해 더 많은 일들을 할 수 있는 것 같은데 아직은 모르는 영역이 많은 것 같습니다.

     

    함께 보면 좋은 글

    [Python] pip 패키지 설치제거, 버전 업그레이드

    [Python]리스트, 딕셔너리 메모장에 저장,불러오기

    [Python] 패키지 설치 목록으로 다른 곳에 설치하기

    댓글

    Designed by JB FACTORY

    ....