타사 모듈

Beginner

This tutorial is from open-source community. Access the source code

소개

Python 은 방대한 내장 모듈 라이브러리를 가지고 있습니다 (batteries included).

더 많은 서드 파티 모듈도 존재합니다. Python Package Index 또는 PyPi 에서 확인해 보세요. 아니면 특정 주제에 대해 Google 검색을 해보세요.

서드 파티 의존성을 처리하는 방법은 Python 에서 끊임없이 발전하는 주제입니다. 이 섹션에서는 작동 방식을 이해하는 데 도움이 되는 기본 사항만 다룹니다.

모듈 검색 경로

sys.pathimport 문에 의해 검사되는 모든 디렉토리의 목록을 포함하는 디렉토리입니다. 확인해 보세요:

>>> import sys
>>> sys.path
... 결과를 확인하세요 ...
>>>

무언가를 import 하려고 하는데 해당 항목이 이러한 디렉토리 중 하나에 위치하지 않으면 ImportError 예외가 발생합니다.

표준 라이브러리 모듈

Python 표준 라이브러리의 모듈은 일반적으로 /usr/local/lib/python3.6과 같은 위치에서 제공됩니다. 간단한 테스트를 통해 확실하게 확인할 수 있습니다:

>>> import re
>>> re
<module 're' from '/usr/local/lib/python3.6/re.py'>
>>>

REPL 에서 모듈을 단순히 살펴보는 것은 알아두면 좋은 디버깅 팁입니다. 파일의 위치를 보여줍니다.

서드 파티 모듈

서드 파티 모듈은 일반적으로 전용 site-packages 디렉토리에 위치합니다. 위와 동일한 단계를 수행하면 확인할 수 있습니다:

>>> import numpy
>>> numpy
<module 'numpy' from '/usr/local/lib/python3.6/site-packages/numpy/__init__.py'>
>>>

다시 말하지만, import와 관련된 문제가 예상대로 작동하지 않는 이유를 파악하려는 경우 모듈을 살펴보는 것은 좋은 디버깅 팁입니다.

모듈 설치

서드 파티 모듈을 설치하는 가장 일반적인 기술은 pip를 사용하는 것입니다. 예를 들어:

$ python3 -m pip install packagename

이 명령은 패키지를 다운로드하여 site-packages 디렉토리에 설치합니다.

문제점

  • 직접 제어할 수 없는 Python 설치를 사용하고 있을 수 있습니다.
    • 회사에서 승인된 설치
    • OS 와 함께 제공되는 Python 버전을 사용하고 있습니다.
  • 컴퓨터에 전역 패키지를 설치할 권한이 없을 수 있습니다.
  • 다른 종속성 (dependency) 이 있을 수 있습니다.

가상 환경 (Virtual Environments)

패키지 설치 문제에 대한 일반적인 해결책은 소위 "가상 환경 (virtual environment)"을 직접 만드는 것입니다. 당연히, 이를 수행하는 "단 하나의 방법"은 없으며, 실제로 여러 경쟁 도구와 기술이 있습니다. 그러나 표준 Python 설치를 사용하고 있다면 다음을 입력해 볼 수 있습니다.

$ sudo apt install python3-venv
$ python -m venv mypython
bash %

잠시 기다리면, 자신만의 작은 Python 설치인 새로운 디렉토리 mypython이 생성됩니다. 해당 디렉토리 내에서 bin/ 디렉토리 (Unix) 또는 Scripts/ 디렉토리 (Windows) 를 찾을 수 있습니다. 거기에서 찾을 수 있는 activate 스크립트를 실행하면 이 Python 버전을 "활성화"하여 셸의 기본 python 명령으로 만듭니다. 예를 들어:

$ source mypython/bin/activate
(mypython) bash %

여기에서 자신을 위해 Python 패키지 설치를 시작할 수 있습니다. 예를 들어:

(mypython) $ python -m pip install pandas
...

실험하고 다양한 패키지를 시도하는 목적이라면, 가상 환경이 일반적으로 잘 작동합니다. 반면에, 응용 프로그램을 만들고 특정 패키지 종속성 (dependency) 이 있는 경우, 이는 약간 다른 문제입니다.

애플리케이션에서 타사 종속성 (Third-Party Dependencies) 처리하기

애플리케이션을 작성했고 특정 타사 종속성이 있는 경우, 한 가지 과제는 코드와 종속성을 포함하는 환경을 생성하고 유지하는 것입니다. 슬프게도, 이것은 Python 의 수명 동안 큰 혼란과 빈번한 변화가 있었던 영역입니다. 현재도 계속 발전하고 있습니다.

곧 구식이 될 정보 대신, Python Packaging User Guide를 참조하십시오.

연습 9.4: 가상 환경 생성하기

위에 표시된 대로 가상 환경을 만들고 pandas 를 설치하는 단계를 재현할 수 있는지 확인하십시오.

요약

축하합니다! 타사 모듈 (Third Party Modules) 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.