파이썬 패키지

채채·2024년 11월 26일

🎁패키지란 ?

모듈의 모음🎁!
여러 모듈을 논리적으로 묶은 디렉터리 구조
(패키지가 모이면? 라이브러리 !)

🎁패키지의 장점

  • 모듈의 장점처럼, 코드 재사용을 촉진하고, 대규모 프로젝트에서 코드의 가독성과 유지보수성을 높이는데 중요한 역할을 함.
  • 코드의 모듈화 : 코드를 기능별로 나누어 관리
  • 재사용성 : 한 번 작성한 패키지는 다른 플젝에서 또 사용
  • 이름 공간 관리 : 이름 충돌 방지

🎁패키지의 구조

패키지는 디렉터리 내에 __init--.py 파일이 있어야 패키지로 인식함.(파이썬 3.3부터는 없어도 패키지로 인식하지만 빈 파일이라도 만들어두는 것이 관례)

mypackage/            # 패키지의 최상위 디렉터리
    __init__.py       # 패키지를 초기화하는 파일 (필수)
    module1.py        # 첫 번째 모듈
    module2.py        # 두 번째 모듈
    subpackage/       # 서브 패키지 (하위 패키지)
        __init__.py   # 서브 패키지 초기화 파일
        submodule.py  # 서브 패키지 내의 모듈

🎁외부패키지 설치하기

pip은 패키지를 설치, 관리, 제거할 수 있는 도구

pip install 패키지이름              # 설치
pip list                          # 설치된 패키지 목록 확인
pip install --upgrade 패키지이름    #패키지 업그레이드
pip uninstall 패키지이름            #패키지 삭제

🎁패키지 사용

  • 예시
import requests
# requests 패키지를 불러옴

response = requests.get("<https://www.example.com>")
print(response.status_code)  # 웹사이트의 HTTP 상태 코드를 출력
print(response.text)  # 웹사이트의 HTML 소스코드를 출력

-------------------------------------------------------------

from mypackage import module1

#mypackage라는 패키지에서 모듈 module1을 불러옴

from mypackage.module2 import some_function

#mypackage라는 패키지모듈 module2에서 some_function 함수를 불러옴

🎁패키지 관리 팁

requirements.txt 파일 사용

프로젝트에 필요한 패키지들을 기록해 두면, 다른 개발자가 동일한 환경을 쉽게 설정할 수 있음.
이를 위해 pip에서 requirements.txt 파일을 생성하고, 이를 사용해 패키지를 일괄 설치할 수 있음.

pip freeze > requirements.txt  
# 현재 설치된 패키지를 requirements.txt에 기록
pip install -r requirements.txt  
# requirements.txt에 명시된 모든 패키지를 설치

🎁패키지 설치가 안 된다면?

  1. 패키지 캐시 삭제
pip cache purge
  1. 특정 버전 설치
pip install 패키지이름==버전번호
  1. 의존성 문제 해결
    pip에서 관리되지 않는 문제는 수동으로 원인 분석해야 함.


🎁패키지 버전을 다양하게 사용하고 싶다면?

가상환경을 활용하면 다른 버전의 패키지를 사용할 수 있음.
활용 예) 복수의 프로젝트 진행시, 서로 다른 버전의 패키지를 활용하여야 할 때

🔮가상 환경 생성

python -m venv myenv  # 'myenv'라는 이름의 가상 환경 생성

🔮가상환경 활성화
    활성화 방법은 windows와 macOS/Linux가 다름

# Windows :

myenv\\Scripts\\activate

# macOS/Linux:

source myenv/bin/activate

🔮비활성화

deactivate

🔮가상 환경의 장점

  • 독립성: 프로젝트 간 패키지 의존성을 독립적으로 관리할 수 있습니다.
  • 충돌 방지: 동일한 Python 설치 환경에서 여러 프로젝트가 서로 다른 패키지 버전을 사용할 때 발생할 수 있는 충돌을 방지합니다.
profile
화이팅

0개의 댓글