# 파이썬 모듈 배포하기

전자 우편

  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 등 인기 있는 호스팅 사이트를 확인하여 이미 해당 이름의 프로젝트가 있는지 확인하십시오

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

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

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

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

더 보기

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