Page 23 -
P. 23
PyPI에 들어 있는 각 모듈은 서로 다른 라이선스로 제공된다. 대부분의 패
*
키지, 특히 유명한 패키지들은 보통 자유 로운 오픈 소스 라이선스(https://
opensource.org에서 자세한 내용을 볼 수 있다)로 제공된다. 대부분의 경
우 이런 라이선스는 여러분의 프로그램에 모듈을 복사해 포함시킬 수 있게
허용하지만, 잘 모르겠다면 변호사에게 문의하라.
기억해야 할 내용
• 파이썬 패키지 인덱스(PyPI)에는 파이썬 커뮤니티가 개발하고 유지하는 풍부한 공통 패
키지가 들어 있다.
• pip는 PyPI에 있는 패키지를 설치하고 사용할 때 쓸 수 있는 명령줄 도구다.
• PyPI 모듈의 대다수는 자유 소프트웨어이거나 오픈 소스 소프트웨어다.
Better way 83 가상 환경을 사용해 의존 관계를 격리하고
반복 생성할 수 있게 하라
크고 복잡한 프로그램을 만들다 보면 파이썬 커뮤니티가 제공하는 다양한 패
키지에 의존하게 되는 경우가 많다(Better way 82: ‘커뮤니티에서 만든 모
듈을 어디서 찾을 수 있는지 알아두라’ 참고). python3 -m pip 명령줄 도구를
사용해 pytz, numpy 등의 다양한 패키지를 자주 설치할 것이다.
문제는 pip가 새로운 패키지를 기본적으로 모든 파이썬 인터프리터가 볼 수
있는 전역 위치에 저장한다는 데 있다. 이로 인해 여러분의 시스템에서 실행
되는 모든 파이썬 프로그램이 설치한 모듈의 영향을 받게 된다. 이론적으로
는 이런 일이 문제가 되면 안 된다. 어떤 패키지를 설치했다 해도 import하지
않는다면, 이 패키지가 어떻게 여러분의 프로그램에 영향을 미치겠는가?
* 역주 free software를 ‘공짜 소프트웨어’라고 번역할 수도 있지만, 코드에 대한 사용권의 자유를 의미하는 뜻에서
‘자유 소프트웨어’라고 번역했다.
10장 협업 569
파이썬 코딩의 기술_06.indd 569 2020-10-20 오후 2:53:41