2009-12-09 2 views
3

나는 미래의 사용을 위해 디스크에 캐시하려는 큰 데이터 파일을 생성하는 파이썬 모듈을 가지고 있습니다. 캐시는 보통 사용자의 경우 수백 MB에 달하지만 많은 계산 시간을 절약 할 수 있습니다.파이썬 패키지 용 데이터 캐시

파일은 모듈과 함께 배포되지 않지만 지정된 매개 변수 집합으로 코드가 처음 실행될 때 생성됩니다.

지금까지 저는 단일 파일 모듈을 직접 사용하여 모듈 (data /)에 상대적인 하드 코드 된 경로에 넣었습니다. 하지만 이제는 distutils가있는 Python 패키지에이 모듈을 배포해야합니다. 표준적인 방법이 있는지 궁금합니다.

필자는 scipy.weave의 컴파일 된 캐시와 같은 것을 생각하고 있었지만 더 현대적인 지원 방법이 있는지 궁금해했습니다. * nix 플랫폼에서 나는 그것이 ~/.something에 들어가기를 기대할 것이다. 그러나 나는 그 윈도우가 무엇이 될 것인지 확신 할 수 없다. 또한 사용자가보다 편리하게 다른 곳을 가리킬 수 있도록하거나 사용자간에 캐시 디렉토리를 공유 할 수 있도록 구성 가능해야합니다. 그런 설정 파일은 어떻게 작동해야합니까? 어디로 가야합니까?

아니면 setup.py 옆에있는 config 파일을 통해 설치 옵션을 지정하거나 setup.py를 수동으로 편집하여 설정 한 다음 모듈을 설치하기 전에 하드 코딩을해야합니까?

greatfully받은 모든 포인터 ...

답변

3

당신은 INI 파일 (또는 문화에 따라 .RC 파일)을 구문 분석하는 표준 라이브러리 모듈 ConfigParser을 사용할 수 있습니다. 파일을 찾으려면 os.path.expanduser은 "~/.mytoolrc"와 같은 경로의 모든 플랫폼에서 올바른 기능을 수행하는 유용한 기능입니다. 사용자가 사물의 위치를 ​​무시하도록하려면 os.environ을 통해 환경 변수를 사용할 수 있습니다.

이 자유 OS 세계에서 새로운 표준입니다
+0

고마워 ~ 그래서 ~/.mycache 또는 ~/_mycache 디렉토리가 기본이라고 생각합니다. ~/.my_module 또는 ~/_my_module 설정 파일을 찾은 다음 현재 디렉토리를 가져옵니다. 그렇다면 대부분의 사람들이 기본값을 사용해야하지만 쉽게 구성 할 수 있습니다. 나는 Windows 사람들이 일반적으로 그런 것들을 설정하는 것을 좋아하지 않는다고 생각하기 때문에 환경 변수를 피하는 것을 선호합니다. – robince