문제

나는 cli 프로그램에 gtk GUI를 추가하기 위해 파이썬으로 빠른 프로그램을 작성했습니다. distutils를 사용하여 설치 프로그램을 만드는 방법이 궁금합니다. 명령 줄 앱을위한 GUI 프론트 엔드이기 때문에 어쨌든 * nix에서만 작동하므로 크로스 플랫폼에 대해 걱정하지 않습니다.

내 주요 목표는 debian / ubuntu 사용자를위한 .deb 패키지를 만드는 것이지만 make / configure 파일을 이해하지 못합니다. 지금까지 주로 웹 개발자였습니다.

수정 : distutils를 사용하는 프로젝트에 대해 알고있는 사람이 있나요? 그래서 제가 실제로 볼 수 있고 실제로 빌드 해 볼 수 있습니다.

다음은 몇 가지 유용한 링크입니다.
  • Ubuntu Python 패키징 가이드

    이 가이드는 매우 도움이됩니다. 처음 골링을하는 동안 어떻게 놓쳤는 지 모르겠습니다. 기존 Python 애플리케이션을 패키징하는 과정도 안내합니다.

  • Ubuntu MOTU 프로젝트

    우분투의 공식 패키지 유지 관리 프로젝트입니다. 누구나 참여할 수 있으며, 위의 '파이썬 패키징 가이드'를 포함하여 모든 유형의 패키지 생성에 대한 많은 튜토리얼과 정보가 있습니다.

  • "Python distutils to deb? " -Ars Technica 포럼 토론

    이 대화에 따르면 distutils 만 사용할 수는 없습니다. 데비안 패키징 형식 (또는 이와 유사한 형식)을 따르지 않습니다. 그래서 우분투 패키징 가이드에서 볼 수 있듯이 dh_make가 필요한 것 같아요

  • "distutils 용 bdist_deb 명령

    이것은 zip 파일과 셸 스크립트를 연결하여 일종의 범용 실행 파일 (python 및 bash가있는 모든 것)을 만드는 방법에 대한 흥미로운 토론 (우분투 가이드를 찾은 방법이기도합니다)이 있습니다. 기묘한. 내가 들어 본 적이 없기 때문에이 관행에 대해 더 많은 정보를 찾는 사람이 있으면 알려주세요.

  • deb 형식에 대한 설명 및 distutils 적합-파이썬 메일 링리스트

도움이 되었습니까?

해결책

distutils 간단한 예 를 참조하세요.실제 설치 스크립트에는 일반적으로 조금 더 많은 정보가 포함되어 있다는 점을 제외하면 기본적으로 그와 같습니다.하지만 근본적으로 더 복잡한 것은 본 적이 없습니다.본질적으로 설치해야 할 항목의 목록 만 제공하면됩니다.소스와 설치된 트리가 동일하지 않을 수 있으므로 때때로 매핑 사전을 제공해야합니다.

다음은 실제 (익명화 된) 예입니다. 라코 디스

다른 팁

apt-get install python-stdeb

Python에서 Debian 소스 패키지로 변환 유틸리티

이 패키지는 새로운 distutils 명령 인 sdist_dsc를 통해 Python 패키지에서 Debian 패키지를 생성하는 몇 가지 도구를 제공합니다.데비안 패키지에 자동 기본값이 제공되지만 결과 패키지의 여러 측면은 구성 파일을 통해 사용자 정의 할 수 있습니다.

  • pypi-install은 Python 패키지 색인 (PyPI)에서 패키지, 다운로드, .deb 생성 및 설치 .deb.
  • py2dsc는 distutils에서 빌드 한 소스 tarball을 데비안으로 변환합니다. 소스 패키지.

대부분의 Python 프로그램은 distutils를 사용합니다. Django 는 하나입니다- http://code.djangoproject.com/svn/django/trunk/setup.py

문서 도 읽어야합니다.예.

다음 튜토리얼 이 매우 유용하다는 것을 알았습니다.distutils 문서보다 짧으며 일반적인 프로젝트를 단계별로 설정하는 방법을 설명합니다.

distutils는 일단 익숙해지면 그렇게 어렵지 않습니다.메타 정보 (프로그램 이름, 작성자, 버전 등)를 입력하고 포함 할 파일을 선택하면됩니다.예를 들어 다음은 상당히 복잡한 파이썬 라이브러리의 distutils setup.py 모듈 샘플입니다.

Kamaelia setup.py

이것은 어떤 데이터 파일도 다루지 않습니다. 그래서 YMMV.

또 다른 메모에서, 나는 distutils 문서가 아마도 파이썬의 최악의 문서 일 것이라는 데 동의합니다.일부 영역에서는 매우 포괄적이지만 다른 영역에서는 매우 중요한 정보를 무시합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top