프로그래밍

프로그램의 설치와 배포 - 파이썬 배우기(Python)

야라바 2019. 3. 22. 11:09
728x90


■ 파이썬 모듈의 설치


파이썬 모듈을 rpm, yum, apt-get등의 리눅스 설치도구나 윈도우의 실행 프로그램으로 설치하면 현재의 시스템과 파이썬 구동 환경에 맞게 간단히 설치할 수 있지만 특정 모듈에 집중해서 배포하는 경우에는 파이썬의 Distutils에서 제공하는 표준 기능을 활용하여 어렵지 않게 설치 할 수 있습니다.



위의 그림은 파이썬에서 생성한 setuptools의 윈도우용 배포 파일을 실행 했을 때의 화면으로 현재의 파이썬 환경을 자동 인식하여 손쉽게 설치를 진행 할 수 있음을 확인할 수 있습니다.




모듈을 설치하면 위의 그림과 같이 파이썬 라이브러리 폴더 아래 site-packages에 저장됨을 확인 할 수 있습니다. 



설치 작업은 모듈을 다운로드 받아서 압축 파일을 특정 폴더에 해제하는 것으로 시작 합니다. 본격적인 설치는 압축을 해제한 모듈의 루트 디렉토리로 이동하여 "python setup.py install"과 같이 setup.py를 실행 시키면 됩니다.


setup.py는 Distutils의 가이드에 따라 배포자가 설치 관련 정보를 입력해 놓은 파일입니다. 위의 그림은 setup.py를 활용하여 협업 관리 시스템인 Trac 패키지를 설치하는 화면 입니다. 



■ 파이썬 배포판 제작하기


패키지 개발이 끝나면 사용자에게 해당 내용을 배포하는 과정이 남아 있는데 크게 두가지 형태로 배포 할 수 있습니다. 파이썬이 운영 체제 독립형이므로 어떤 운영 체제에서라도 설치 과정이 동일한 소스 배포판(위의 예제에서 Trac 패키지 설치과정이 소스 배포판 설치 입니다)과 운영 체제별 설치 도구의 특성에 맞게 제작 배포하는 바이너리 배포판으로(위의 예제에서는 setuptools) 배포 할 수 있습니다.

 

배포판 제작은 setup.py를 작성하는 것으로 시작 합니다. 배포판 제작의 핵심 역할은 setup.py의 setup()함수로 이 함수에 넘기는 값에 따라. 배포판의 내용이 결정 됩니다.


다음은 Trac 패키지의 setup.py중 setup() 함수의 일부 입니다.


setup(

    name = 'Trac',

    version = '1.0.1',

    description = 'Integrated SCM, wiki, issue tracker and project environment',

    long_description = """

Trac is a minimalistic web-based software project management and bug/issue

tracking system. It provides an interface to the Subversion revision control

systems, an integrated wiki, flexible issue tracking and convenient report

facilities.

""",

    author = 'Edgewall Software',

    author_email = 'trac-dev@googlegroups.com',

    license = 'BSD',

    url = 'http://trac.edgewall.org/',

    download_url = 'http://trac.edgewall.org/wiki/TracDownload',

    classifiers = [

        'Environment :: Web Environment',

        'Framework :: Trac',

        'Intended Audience :: Developers',

        'License :: OSI Approved :: BSD License',

        'Operating System :: OS Independent',

        'Programming Language :: Python',

        'Topic :: Software Development :: Bug Tracking',

        'Topic :: Software Development :: Version Control',

    ],


    packages = find_packages(exclude=['*.tests']),

    package_data = {

        '': ['templates/*'],

        'trac': ['htdocs/*.*', 'htdocs/README', 'htdocs/js/*.*',

                 'htdocs/js/messages/*.*', 'htdocs/css/*.*',

                 'htdocs/css/jquery-ui/*.*',

                 'htdocs/css/jquery-ui/images/*.*',

                 'htdocs/guide/*', 'locale/*/LC_MESSAGES/messages.mo',

                 'locale/*/LC_MESSAGES/tracini.mo'],

        'trac.wiki': ['default-pages/*'],

        'trac.ticket': ['workflows/*.ini'],

    },


위의 예제에서 설치했던 Trac 패키지의 루트 디렉토리에서 "python.exe setup.py sdist"를 입력하면 소스배포판을 제작하여 dist 폴더에 저장 합니다. 즉 setup.py는 배포판 제작과 설치 모두에서 사용하므로 작성에 주의를 기울여야 합니다. 





위의 그림은 Trac의 소스 배포판 생성 과정과 결과 저장 폴더인 dist를 확인한 것입니다.



바이너리 배포판이라고 해서 소스 코드가 없는 것은 아니고 컴파일한 바이트 코드와 함께 해당 소스도 함께 배포 합니다. 그래서 "Built distribution" 이라고도 합니다. 

 

바이너리 배포판을 제작하는 경우는 "python.exe setup.py bdist"를 입력하면 됩니다. 


사용자의 좀더 편리한 설치를 위해서 설치형 바이너리를 제작할 수도 있는데 윈도우의 경우에는 "python.exe setup.py bdist_wininst"를 입력하면 위의 예제에서 setuptools가 설치되는 것처럼 편리하게 모듈을 설치할 수 있는 설치 프로그램을 생성 합니다.  리눅스 RPM 형태로 제작할 경우에는 "python.exe setup.py bdist_rpm"를 입력하면 됩니다.





728x90