수색…


매개 변수

매개 변수 용법
name 배포판의 이름.
version 배포판의 버전 문자열.
packages 포함 할 파이썬 패키지 목록 (모듈이 들어있는 디렉토리). 이것은 수동으로 지정할 수 있지만 대신 일반적으로 setuptools.find_packages() 대한 호출이 대신 사용됩니다.
py_modules 포함 할 최상위 Python 모듈 목록 (즉, 단일 .py 파일).

비고

Python 패키징에 대한 자세한 내용은 다음을 참조하십시오.

소개

공식 패키지 작성에 대해서는 패키징 사용자 안내서가 있습니다.

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_optionsfinalize_options 는 이름에서 알 수 있듯이 run 기능 이전 및 이후에 run 됩니다.

그 후에 옵션을 호출 할 수 있습니다.

python setup.py build_sphinx


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow