``.desktop` 파일 및 아이콘을 Gnome의 파이썬 패키지에 배포하는 방법 (distutils 또는 setupools 포함)?

StackOverflow https://stackoverflow.com/questions/501597

문제

현재 나는 자동 툴을 사용하여 내 프로젝트를 빌드/설치하고 포장하고 있지만 더 "피스닉"을 느끼는 것으로 옮기고 싶습니다.

내 프로젝트는 두 개의 스크립트, 하나의 모듈, 2 개의 Glade GUI 설명 및 두 개의 .desktop 파일로 구성됩니다. 현재 순수한 파이썬 프로젝트이지만 곧 바뀔 가능성이 높습니다.

setuptools를 살펴보면 .desktop 파일을 제외한 모든 것을 다루는 방법을 쉽게 볼 수 있습니다. 그놈이 찾을 수 있도록 특정 디렉토리로 끝나야합니다.

distuils/setuptools를 사용하는 것이 좋습니다.

도움이 되었습니까?

해결책

나는 이것을 작동시킬 수 있었지만, 그것은 나에게 더 기분이 좋다. 해결 방법.

이것을 처리하는 선호하는 방법이 무엇인지 모릅니다 ...

나는 다음을 사용했다 setup.py 파일 (정식 버전입니다 여기):

from setuptools import setup

setup(
  # ...
  data_files=[
    ('share/icons/hicolor/scalable/apps', ['data/mypackage.svg']),
    ('share/applications', ['data/mypackage.desktop'])
  ],
  entry_points={
    'console_scripts': ['startit=mypackage.cli:run']
  }
)

스타터 스크립트 트로프 entry_points 공장. 하지만 data_files 계란 파일을 넣고 지정된 폴더에 넣지 않으므로 데스크탑 쉘에서 액세스 할 수 없습니다.

이 문제를 해결하기 위해 다음을 사용했습니다 setup.cfg 파일:

[install]
single-version-externally-managed=1
record=install.txt

이것은 작동합니다. 두 데이터 파일 모두 올바른 위치에서 생성됩니다. .desktop 파일은 그놈으로 인식됩니다.

다른 팁

일반적으로 예 - 파이썬 프로젝트를 구축 할 때 모든 것이 자동 툴보다 낫습니다.

지금까지 Setuptools에 대한 좋은 경험이 있습니다. 그러나 고정 위치에 파일을 설치하는 것은 SetUptools의 강점이 아닙니다. 결국 Python 앱 용 설치 관리자를 구축하는 것은 아니지만 Python 라이브러리를 배포하는 것이 아닙니다.

애플리케이션 데이터 파일이 아닌 파일 (이미지, UI 파일 등)이 아닌 파일을 설치하면 운영 체제에 통합을 제공하려면 실제 포장 형식 (RPM 또는 DEB 등)을 사용하는 것이 좋습니다.

즉, SetUptools를 기반으로 빌드 프로세스와 모든 것을 정당한 장소에 설치하기위한 작은 제작 파일을 사용하는 것을 막을 수는 없습니다.

당신은 사용할 수 있습니다 Python-distutils-extra. 그만큼 DistUtilsExtra.auto 자동으로 모듈 지원합니다 .desktop 파일과 Glade/GtkBuilder .UI 파일, 파이썬 모듈 및 스크립트, MISC 데이터 파일 등

Distutils 및 Setupools와 함께 작동해야합니다.

나는 만들었다 https://pypi.python.org/pypi/install-freedesktop. GUI_SCRIPTS 엔트리 포인트에 대해 .DESKTOP 파일을 자동으로 생성하며 설정 인수를 통해 사용자 정의 할 수 있으며 지원합니다. --user 시스템 전체의 설치뿐만 아니라. 비교 DistUtilsExtra, 그것은 스코프가 더 좁고 IMHO 더 많은 피티닉 (명시 적은 암시 적보다 낫다).

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