플랫폼 독립적 PyQt 애플리케이션을하고 있습니다. setuptools를 사용하여 setup.py 파일을 작성하려고합니다. 지금까지 플랫폼 검색에 참여했습니다. Windows에서 py2exe를 사용하기 위해 플랫폼에 따라 setup()에 대한 특정 옵션로드 ... 등 ...distutils/setuptools 전후의 데이터 파일 접근하기
그러나 내 응용 프로그램에서는 일부 테마, HTML 및 이미지를 배포 할 때이 이미지를로드해야합니다. 런타임시 응용 프로그램에서. 지금까지는 응용 프로그램의 테마/디렉토리에 저장되었습니다.
나는 setuptools와 distutils에 대한 문서를 읽었으며, "share/MyApp/themes /"에 설치 될 themes/디렉토리에있는 모든 파일들로 setup()에 data_files 옵션을 주었다면 알아 냈다./usr/접두사 또는 플랫폼에있는 sys.prefix와 함께 설치됩니다. os.path.join (sys.prefix, "share", "MyApp", "themes") nomatter를 사용하여 데이터 파일을 찾을 수 있다고 가정합니다.
그러나 개발 도중에 응용 프로그램 소스와 관련된 테마/디렉토리에있는 데이터 파일에 액세스 할 수 있기를 원합니다. 어떻게해야합니까? 응용 프로그램이 설치되었는지 알아내는 현명한 방법이 있습니까? 또는 현재 위치에 상관없이 데이터 파일에 매핑되는 유틸리티?
소스와 관련된 테마가 있는지 또는 sys.prefix/share ... 등등과 관련된 모든 종류의 추한 해킹을 추가하는 것이 정말 싫습니다. 개발 과정에서 데이터 파일을 어떻게 찾을 수 있습니까? 임의의 플랫폼에 설치 한 후?
data_files가/usr/share/AppName/themes/에 설치되어있을 때 어떻게 작동합니까? 내 실행 파일은/usr/lib/AppName과 비슷합니다 ... DistUtils 설명서에 나와 있습니다. sys.prefix와 함께 데이터 파일에 저장된 상대 경로 접두어로 설치됩니다. * nix 시스템의 데이터 파일은/usr/share/AppName/ – jonasfj
에 있어야합니다. setup.py의 package_data 옵션. data_files에 대해 확실하지 않습니다. –
좋아요 ... 그래, package_data도 옵션입니다. 아마도 그걸로 가야 할 것 같습니다 ... 데비안 호환 패키지를 생성하지 않을 것이라고 생각합니다 :) – jonasfj