Python 패키지의 표준 비 코드 리소스 위치
문제
이것은 일반적인 시나리오이어야하지만 아직 관련 게시물을 찾을 수 없습니다 ..
일부 이미지 및 기타 리소스 파일을 사용하는 Python 라이브러리 (일반 응용 프로그램에 동일하게 적용되는 것 같아요)를 배포 할 계획입니다. 그러한 품목의 표준 위치는 무엇입니까? 프로젝트를 위해 상상합니다 Foo
, 선택은 될 것입니다
- 가지다
resources
소스 저장소의 디렉토리를 다음 파일을/usr/share/foo/
- 아래에있는 파이썬 패키지 내부에 자원을 배치하십시오.
/usr/lib/python-<version>/foo/
제안이 있습니까?
편집하다: 제안한 바와 같이, 이것이 실행될 주요 플랫폼이 Linux임을 명확히합니다.
해결책
적절한 답변은 각각 자체 모드 오페라가 있기 때문에 기본 운영 체제에 의존하기 때문에이 질문은 다소 불완전합니다. 예를 들어/usr/share/foo 또는/usr/local/share/foo가 표준입니다. OS X에서는 똑같이 할 수 있지만 "/Library/Application Support/Foo"(일반적으로 설정을 저장하는 것이지만)는 그런 것들을 넣을 수있는 곳이 될 것이라고 생각합니다. "프레임 워크"아이디어, 모든 리소스는 /library/frameworks/foo.framework에 포함됩니다. "
다른 팁
비 .py 파일을 넣습니다 /opt/foo/foo-1.2/...
물론 Apache가 제공하는 정적 미디어의 경우 /var/www/html/foo/foo-1.1/media/...
물론 고객 별 구성 파일을 제외하고. 그들은 간다/var/opt/customer/foo/...
그것들은 내가 이해할 때 Linux 표준을 따릅니다.
우리는 멀리하려고 노력합니다 /usr/lib/
그리고 /lib
그것들은 분포의 일부처럼 느껴지기 때문에 장소의 종류. 우리는 기대합니다 /opt
그리고 /var
Linux 배포판 디렉토리와 명확하게 분리되어 있기 때문입니다.
그만큼 기준 위치는 표준 Libs가가는 곳입니다. 그러나 당신이 쓴 내용에서 나에게 소리가 나지 않을 것입니다. 나는 당신이 시도해야한다고 생각합니다 virtualenv.
모든 문제를 겪고 싶지 않다면 (실제로는 sudo easy_install virtualenv
당신을 위해), 당신은 당신의 python lib를 당신의 어떤 dir에 버리는 것입니다. ~/
그리고 선을 따라 무언가를하십시오
import sys
sys.path.append( '/full/path/to/your/lib/goes/here')
귀하의 LIB를 사용하는 모든 응용 프로그램에.
주어진 예제는 테스트 목적만을위한 것임을 명심하십시오. 라이브로, 나는 당신이 사용하는 것이 좋습니다. Distutil. 사용의 예가 제공됩니다 여기.