근본적인 문제는 내가하지만, (동료) 둘 이상의 호스트, 다른 설정 모두에 약간의 장고를 개발하고 있다는 점이다.
from platform import node
settings_files = { 'BMH.lan': 'settings_bmh.py", ... }
__import__(settings_files[ node() ])
그것은 간단한 솔루션 (따라서 우아한)를 보였다, 그러나 나는 그것에 냄새가 동의하지 않았다 및 단순성이 꺼집니다 : 나는 프로젝트/settings.py 파일에서이 같은 뭔가를 기대했다 John Millikin이 게시 한 것과 같은 로직을 사용해야 할 때 루프 (감사). 기본적으로 내가 함께 갔던 해결책은 다음과 같습니다.
from platform import node
from settings_global import *
n = node()
if n == 'BMH.lan':
from settings_bmh import *
# add your own, here...
else:
raise Exception("No host settings for '%s'. See settings.py." % node())
우리의 목적에 잘 맞습니다.
어쩌면 더 나은 : all__ .__ m에서 ATTR에 대한 ? –
@Sergei : 모듈에서 __all__을 정의한다는 보장은 없습니다. –
@ John Millikin : 모듈에서 __all__을 정의하면이를 준수해야합니다. –