Notice
Recent Posts
Recent Comments
Link
코드로 우주평화
Python _ setup.py 의 역할과 사용법 본문
반응형
setup.py
는 파이썬 프로젝트 및 패키지의 빌드, 패키징 및 배포를 관리하는 스크립트 파일이다. 이 파일은 주로 setuptools
및 distutils
라이브러리를 사용하여 파이썬 패키지 정보와 설정을 정의한다.
setup.py
의 주요 역할
- 패키지 정보 정의: 패키지의 이름, 버전, 저자, 라이선스 등의 메타데이터를 정의
- 의존성 관리: 패키지의 작동을 위해 필요한 다른 파이썬 패키지들을 명시
- 빌드 및 배포 명령 제공:
python setup.py install
,python setup.py sdist
등의 명령어로 패키지를 빌드하거나 설치 - 엔트리 포인트 지정: 특정 스크립트나 함수를 명령어로 실행할 수 있게 설정
setup.py
예시
from setuptools import setup, find_packages
setup(
name="mypackage",
version="0.1",
packages=find_packages(),
install_requires=[
"requests", # requests 패키지에 의존성이 있을 경우
],
entry_points={
"console_scripts": [
"my-command=mypackage.mymodule:main_function",
],
},
)
코드 설명
name
: 패키지의 이름version
: 패키지의 버전packages
: 패키지 내의 모듈 및 서브패키지를 자동으로 찾아주는find_packages()
함수를 사용할 수 있음install_requires
: 패키지 설치시 필요한 다른 파이썬 패키지의 리스트entry_points
: 특정 함수나 스크립트를 CLI 명령어로 사용할 수 있게 만드는 설정. 위의 예시에서는my-command
라는 명령어로mypackage.mymodule
모듈의main_function
을 실행할 수 있음
대략적으로 알아봤으니 setup.py
에 대해 간단한 패키지를 만들어 실습해보자.
1. 디렉토리 구조
먼저 다음과 같은 디렉토리 구조를 만들어보자.
my_package/
├── my_module.py
└── setup.py
2. 모듈 작성
my_module.py
파일에 다음과 같은 간단한 코드를 작성한다.
def say_hello():
print("안녕! 반가워!")
3. setup.py 작성
setup.py
파일에는 다음 코드를 참고하여 패키지 설치에 필요한 정보를 작성한다.
from setuptools import setup
setup(
name="my_package",
version="0.1",
py_modules=["my_module"],
entry_points={
"console_scripts": ["say-hello=my_module:say_hello"],
},
)
이 코드는 my_package
라는 이름의 패키지를 설명하고, say-hello
라는 커맨드라인 명령어를 만든다. 이 명령어를 실행하면 my_module
의 say_hello
함수가 호출된다.
4. 패키지 설치
my_package
디렉토리에서 다음 명령어를 실행해 패키지를 설치한다.
python setup.py install
5. 커맨드라인 명령어 실행
설치가 완료되면 터미널에서 say-hello
명령어를 실행할 수 있다. 이 명령어를 실행하면 안녕! 반가워!
라는 메시지가 출력된다.
실습을 통해 확인했듯이 setup.py
는 Python 패키지를 빌드하고 실행할 수 있도록 돕는다.
반응형
'나는 이렇게 학습한다 > Language' 카테고리의 다른 글
Python threading.local 와 ContextVar 비교 (2) | 2023.09.26 |
---|---|
Python _ Decimal 모듈로 부동 소수점 문제 해결하기 (2) | 2023.05.16 |
JavaScript _ 콜백 함수를 알아보자 (0) | 2023.05.09 |
Python _ zoneinfo 사용법, ZoneInfo 와 pytz 차이 (0) | 2022.10.27 |
Python _ Protocol로 인터페이스 만드는 방법 (1) | 2022.08.16 |