컴퓨터 활용/노년에 즐기는 코딩
[Django] 의존성 패키지 설치에 관하여
easyfly
2025. 8. 7. 07:22
반응형
패키지 설치 중에 의존성이 있는 패키지는 PIP가 스스로 알아서 같이 설치를 합니다. 전자책을 만드는데 필요한 패키지 'ebooklib'를 설치함에 'six'와 'lxml'이 같이 설치되는 이유입니다.

🔍 이걸 "의존성(Dependency)"이라고 합니다.
어떤 패키지 A가 제대로 작동하려면
다른 패키지 B, C가 필요하다면
A는 B, C에 의존한다고 말합니다.
📌 예시: ebooklib 설치 과정
Successfully installed ebooklib-0.19 lxml-6.0.0 six-1.17.0
▶️ ebooklib가 설치되면서 자동으로 설치된 의존성:
| 패키지 | 역할 |
| lxml | HTML/XML을 다루는 고성능 파서 (ebooklib 내부에서 사용됨) |
| six | Python 2/3 호환을 위한 도우미 라이브러리 |
즉, ebooklib을 설치하려고 했지만,
lxml, six까지 함께 설치된 것은
ebooklib이 이 두 패키지를 내부적으로 사용하기 때문입니다.
✅ pip가 자동으로 해주는 일
- 의존성이 있는 패키지를 자동으로 설치
- 이미 설치된 경우 버전이 호환되는지 확인
- 버전 충돌이 있으면 경고 또는 오류 표시
📁 실제 저장 위치
모든 설치된 패키지는 다음 경로에 들어갑니다:
.../venv/lib/pythonX.X/site-packages/
예: 'oukwon/venv/lib/python3.11/site-packages/'
이 안에 ebooklib/, lxml/, six.py 등이 들어 있게 됩니다.
📌 요약정리
| 질문 | 답변 |
| 패키지 설치 시 의존성도 같이 설치되나요? | ✅ 예, 자동으로 함께 설치됩니다. |
| 수동으로 따로 설치해야 하나요? | ❌ 아니요, pip이 알아서 처리합니다. |
| 어디서 확인하나요? | pip show <패키지> 명령의 Requires: 항목 |
반응형