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

전자 우편:
   distutils-sig@python.org

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

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

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

참고:

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


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

* the Python Package Index is a public repository of open source
  licensed packages made available for use by other Python users

* 파이썬 패키징 위원회 는 표준 패키징 도구와 관련 메타 데이터 및 파일
  형식 표준의 유지 보수 및 발전을 담당하는 개발자 및 문서 작성자 모임
  입니다. 그들은 GitHub 와 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

참고:

  For POSIX users (including macOS and Linux users), these
  instructions assume the use of a *virtual environment*.윈도우 사용자
  의 경우, 이 지침은 파이썬을 설치할 때 시스템 PATH 환경 변수를 조정하
  는 옵션이 선택되었다고 가정합니다.

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


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

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

* 프로젝트 구조

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

* Uploading the project to the Python Package Index

* .pypirc 파일


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

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


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

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

* check the Python Package Index to see if the name is already in use

* GitHub, Bitbucket 등 인기 있는 호스팅 사이트를 확인하여 이미 해당 이
  름의 프로젝트가 있는지 확인하십시오

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

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


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

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

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