파이썬 모듈 배포하기
********************

이메일:
   distutils-sig@python.org

널리 사용되는 공개 소스 개발 프로젝트로서, 파이썬에는 적극적으로 지원
하는 기여자와 사용자의 커뮤니티가 있어, 자신들의 소프트웨어를 공개 소
스 라이센스 계약에 따라 다른 파이썬 개발자가 사용할 수 있도록 합니다.

이를 통해 파이썬 사용자는 효과적으로 공유하고 공동 작업할 수 있으며,
다른 사람들이 공통 (심지어 때로는 희귀한) 문제에 대해 이미 만든 솔루션
의 이점을 누릴 수 있을 뿐 아니라, 자체 솔루션을 공동 풀에 잠재적으로
제공할 수 있습니다.

이 지침서는 이 절차의 배포 부분을 다룹니다. 다른 파이썬 프로젝트를 설
치하는 지침은 설치 지침서 를 참조하십시오.

참고:

  기업 및 기타 기관 사용자의 경우, 많은 조직에서 공개 소스 소프트웨어
  를 사용하고 공헌하는 데 대한 자체 정책을 시행하고 있음을 알고 있어야
  합니다. 파이썬과 함께 제공되는 배포 및 설치 도구를 사용할 때 이러한
  정책을 고려하십시오.


핵심 용어
=========

* 파이썬 패키지 색인 은 다른 파이썬 사용자가 사용할 수 있도록 만들어진
  공개 소스 라이선스 패키지의 공용 저장소입니다.

* the Python Packaging Authority are the group of developers and
  documentation authors responsible for the maintenance and evolution
  of the standard packaging tools and the associated metadata and file
  format standards. They maintain a variety of tools, documentation
  and issue trackers on both GitHub and Bitbucket.

* "distutils" 는 1998년에 파이썬 표준 라이브러리에 처음 추가된 최초의
  빌드 및 배포 시스템입니다. "distutils" 의 직접 사용이 단계적으로 폐
  지되고 있지만, 여전히 현재의 패키징 및 배포 기반 시설의 기초를 이루
  고 있고, 표준 라이브러리의 일부로 남아있을 뿐만 아니라, 그 이름은 다
  른 방식으로도 (가령 파이썬 패키징 표준 개발을 조정하는 데 사용되는
  메일링 리스트의 이름으로) 남아있습니다.

* setuptools 는 2004년에 처음 공개된, "distutils" 에 대한 (거의) 드롭
  인(drop-in) 대체품입니다. 수정되지 않은 "distutils" 도구와 비교할 때
  , 가장 주목할만한 추가는 다른 패키지에 대한 의존성을 선언할 수 있는
  능력이었습니다. 현재, "distutils" 에 대한 보다 정기적으로 업데이트되
  는 대안으로 추천되는데, 광범위한 파이썬 버전에서 최근 패키징 표준을
  더 일관성 있게 지원합니다.

* wheel(이 문맥에서)은 "distutils"/setuptools 에 "bdist_wheel" 명령을
  추가하는 프로젝트입니다. 이것은 파이썬 라이브러리를, 바이너리 확장을
  포함한 것이라도, 로컬에서 빌드될 필요 없이 시스템에 설치될 수 있게
  해주는 크로스 플랫폼 바이너리 패키징 형식("휠" 이나 "휠 파일"로 불리
  고, **PEP 427**에서 정의됩니다)을 생성합니다.


공개 소스 라이센스 와 협업
==========================

전 세계 대부분 지역에서, 소프트웨어는 자동으로 저작권의 보호를 받습니
다. 즉, 다른 개발자가 소프트웨어를 복사, 사용, 수정 및 재배포하기 위해
서는 명시적 허락이 필요합니다.

공개 소스 라이선스는 상대적으로 일관된 방식으로 그러한 허락을 명시적으
로 부여하는 방법으로, 다양한 문제에 대한 공통 솔루션을 자유롭게 만듦으
로써 개발자가 효율적으로 공유하고 협업할 수 있게 합니다. 이로 인해 많
은 개발자는 자신의 특정 상황에 상대적으로 고유한 문제에 집중하는 시간
을 더 많이 할애할 수 있습니다.

파이썬과 함께 제공되는 배포 도구는 개발자가 그렇게 하고자 할 때 소프트
웨어의 공통 풀로 다시 기여하는 것을 합리적으로 손쉽게 만들도록 설계되
었습니다.

같은 배포 도구는, 공개 소스 소프트웨어로 게시되는지에 관계없이, 소프트
웨어를 조직 내에서 배포하는데 사용될 수도 있습니다.


도구 설치하기
=============

표준 라이브러리에는 최신 파이썬 패키징 표준을 지원하는 빌드 도구가 포
함되어 있지 않습니다. 핵심 개발팀이 파이썬의 이전 버전에서도 일관되게
작동하는 표준 도구를 갖는 것이 중요하다는 사실을 발견했기 때문입니다.

현재 권장되는 빌드 및 배포 도구는 명령 줄에서 "pip" 모듈을 호출하여 설
치할 수 있습니다:

   python -m pip install setuptools wheel twine

참고:

  POSIX 사용자(맥 OS X 와 리눅스 사용자를 포함합니다)의 경우, 이 지침
  은 *가상 환경* 을 사용한다고 가정합니다.윈도우 사용자의 경우, 이 지
  침은 파이썬을 설치할 때 시스템 PATH 환경 변수를 조정하는 옵션이 선택
  되었다고 가정합니다.

파이썬 패키징 사용자 지침서에는 현재 권장되는 도구 에 대한 자세한 내용
이 들어 있습니다.


파이썬 패키징 사용자 지침서 읽기
================================

파이썬 패키징 사용자 지침서는 프로젝트를 만들고 출판하는 것에 관련된
다양한 핵심 단계와 요소를 다루고 있습니다:

* 프로젝트 구조

* 프로젝트들 빌드하고 패키징하기

* 프로젝트를 파이썬 패키지 색인에 올리기


어떻게 ...?
===========

이것들은 몇 가지 일반적인 작업에 대한 빠른 답변 또는 링크입니다.


... 내 프로젝트의 이름을 고릅니까?
----------------------------------

이것이 쉬운 주제는 아니지만, 여기 몇 가지 팁이 있습니다:

* 파이썬 패키지 색인을 검사해서 이름이 이미 사용 중인지 확인하십시오

* check popular hosting sites like GitHub, Bitbucket, etc to see if
  there is already a project with that name

* 고려 중인 이름으로 웹 검색에서 뭐가 나오는지 확인하십시오

* 특히 흔한 단어(특히 여러 의미가 있는 단어)는 피해야 합니다, 사용자가
  여러분의 소프트웨어를 검색할 때 찾기 어렵게 만들기 때문입니다


... 바이너리 확장을 만들고 배포합니까?
--------------------------------------

이것은 정확히 당신이 달성하고자 하는 목표에 따라 다양한 대안을 사용할
수 있는 실제로 꽤 복잡한 주제입니다. 자세한 정보와 권장 사항은 파이썬
패키징 사용자 지침서를 참조하십시오.

더 보기: 파이썬 패키징 사용자 지침서: 바이너리 확장
