py_test
| LICENSE
| MANIFEST.in
| README.md
| setup.cfg
| setup.py
|
\---calc
| main.py
| util.py
| __init__.py
|
\---__pycache__
util.cpython-39.pyc
__init__.cpython-39.pyc
setuptools 라이브러리 설치
setup.py
setup.py
을 통해 프로젝트의 최상위 디렉토리를 결정하고 빌드 설정을 한다.
프로젝트 폴더를 만들면 최상위 폴더에 setup.py
파일을 둔다.
python 프로젝트를 빌드하고 배포하려면 setup.py
작성해야 한다.
README.md 파일
내용 없어도 되지만 파일이 있어야 한다.
패키징 하려는 모듈
setuptools사용해 설정한다.
명령 프롬포트(cmd) 에서
pip install setuptools
import io
from setuptools import find_packages, setup
import io
from setuptools import find_packages, setup
setup(
name="ex-pkg-calc",
version="1.0.0",
author="hyunji",
author_email="hyun_jjj523@naver.com",
description="Simple Calculation by Python",
keywords=['test','calculate'],
install_requires = [ ],
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",],
python_requires='>=3.6',
)
name = “프로젝트 이름”
일반적으로 모듈명을 배포 파일명으로 사용한다.
이 패키지를 설치/삭제할 때 사용할 이름을 의미한다. 이 이름과 import할 때 쓰이는 이름은 다르다.
version = “배포버전”
author = “저자”
author_email = “저자의 이메일”
description = “프로젝트 설명”
keywords
해당 프로젝트 관련 키워드
python_requires
지원하는 파이썬 버전 정보
install_requires
패키지 내에서 import해서 사용하는 다른 라이브러리 패키지를 써 놓는 곳이다.
여기에 써 놓으면 나중에 pip를 통해 다른 컴퓨터에 설치할 때, 써 놓은 패키지들은 자동으로 같이 설치가 된다.
package_data
패키지 안에 .py 파일이 아닌 다른 파일을 더 포함 시키고 싶을 때 쓴다.
zip_safe
위의 package_data 설정을 하였으면 zip_safe 설정도 해주어야 하며 False로 설정해주어야 한다.
classifiers
PYPI에 등록될 메타 데이터 설정이다. 예를 들어 서포트 하는 python 버젼 정보를 명시할수 있다.\
하지만 이건 PYPI에 등록될 메타 데이터일 뿐이고, 실제 빌드에는 영향을 주지 않는다.
packages
업로드할 패키지들을 묶은 폴더명
find_packages() 함수를 사용하여 package 디렉토리 아래에 있는 모든 패키지들을 포함한다.
만일 README 파일이 마크다운 형태로 되어 있다면 setup.cfg
파일을 아래와 같이 설정 해준다.
[metadata]
description-file = README.md
빈 내용의 파일
폴더 안에 __**init__**.py
파일이 있으면 해당 폴더는 패키지로 인식
→ 배포할 때 __**init__**.py
없으면 배포 되지 않음