Python Language
setup.py
수색…
매개 변수
매개 변수 | 용법 |
---|---|
name | 배포판의 이름. |
version | 배포판의 버전 문자열. |
packages | 포함 할 파이썬 패키지 목록 (모듈이 들어있는 디렉토리). 이것은 수동으로 지정할 수 있지만 대신 일반적으로 setuptools.find_packages() 대한 호출이 대신 사용됩니다. |
py_modules | 포함 할 최상위 Python 모듈 목록 (즉, 단일 .py 파일). |
비고
setup.py의 목적
설정 스크립트는 Distutils를 사용하여 모듈을 작성, 배포 및 설치하는 모든 활동의 중심입니다. 소프트웨어의 올바른 설치가 목적입니다.
foo.py 파일에 포함 된 foo라는 모듈을 배포하려는 경우, 설치 스크립트는 다음과 같이 간단 할 수 있습니다.
from distutils.core import setup
setup(name='foo',
version='1.0',
py_modules=['foo'],
)
이 모듈에 대한 소스 배포판을 만들려면 위 코드를 포함하는 setup.py setup.py 스크립트를 만들고 터미널에서이 명령을 실행합니다.
python setup.py sdist
sdist는 setup.py setup.py와 foo.py 모듈을 포함하는 아카이브 파일 (Unix에서는 tarball, Windows에서는 ZIP 파일)을 생성합니다. 아카이브 파일의 이름은 foo-1.0.tar.gz (또는 .zip)이며 foo-1.0 디렉토리로 풀립니다.
최종 사용자가 foo 모듈을 설치하려면 foo-1.0.tar.gz (또는 .zip)를 다운로드하여 압축을 풀고 foo-1.0 디렉토리에서 실행하십시오.
python setup.py install
파이썬 패키지에 명령 행 스크립트 추가하기
Python 패키지 내의 명령 행 스크립트는 일반적입니다. 사용자가 패키지를 설치할 때 해당 경로에서 스크립트를 사용할 수 있도록 패키지를 구성 할 수 있습니다.
명령 행 스크립트 hello_world.py
를 가진 greetings
패키지가 있다면.
greetings/
greetings/
__init__.py
hello_world.py
다음을 실행하여 해당 스크립트를 실행할 수 있습니다.
python greetings/greetings/hello_world.py
그러나 다음과 같이 실행하고 싶다면 :
hello_world.py
setup.py
과 같이 setup()
scripts
를 추가하면됩니다 :
from setuptools import setup
setup(
name='greetings',
scripts=['hello_world.py']
)
greetings 패키지를 지금 설치하면 경로에 hello_world.py
가 추가됩니다.
또 다른 가능성은 진입 점을 추가하는 것입니다.
entry_points={'console_scripts': ['greetings=greetings.hello_world:main']}
이렇게하면 다음과 같이 실행하면됩니다.
greetings
setup.py에서 소스 컨트롤 메타 데이터 사용하기
setuptools_scm
은 Git 또는 Mercurial 메타 데이터를 사용하여 패키지의 버전 번호를 확인하고 Python 패키지와 패키지 데이터를 찾아서 포함시킬 수있는 공식적인 패키지입니다.
from setuptools import setup, find_packages
setup(
setup_requires=['setuptools_scm'],
use_scm_version=True,
packages=find_packages(),
include_package_data=True,
)
이 예제는 두 가지 기능을 모두 사용합니다. 해당 버전에 대한 SCM 메타 데이터 만 사용하려면 find_packages()
대한 호출을 수동 패키지 목록으로 바꾸거나 패키지 찾기를 사용하려면 use_scm_version=True
제거하십시오.
설치 옵션 추가
앞의 예제에서 볼 수 있듯이이 스크립트의 기본적인 사용법은 다음과 같습니다.
python setup.py install
그러나 패키지를 설치하는 것과 같은 옵션이 더 많으며 코드를 변경하고 다시 설치하지 않고도 테스트 할 수 있습니다. 이 작업은 다음을 사용하여 수행됩니다.
python setup.py develop
Sphinx 문서를 컴파일하거나 포트란 코드를 작성하는 것과 같은 특정 작업을 수행하려는 경우 다음과 같이 자신 만의 옵션을 만들 수 있습니다.
cmdclasses = dict()
class BuildSphinx(Command):
"""Build Sphinx documentation."""
description = 'Build Sphinx documentation'
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
import sphinx
sphinx.build_main(['setup.py', '-b', 'html', './doc', './doc/_build/html'])
sphinx.build_main(['setup.py', '-b', 'man', './doc', './doc/_build/man'])
cmdclasses['build_sphinx'] = BuildSphinx
setup(
...
cmdclass=cmdclasses,
)
initialize_options
및 finalize_options
는 이름에서 알 수 있듯이 run
기능 이전 및 이후에 run
됩니다.
그 후에 옵션을 호출 할 수 있습니다.
python setup.py build_sphinx