1
對於某些Python項目,我在config
模塊中定義了默認配置。定製是通過獲取使用來自包內的imp.load_source
config = imp.load_source('config', 'some_rc_file')
RC文件可能會重新定義只配置變量的一個子集,甚至根本不是一個RC文件到它允許的,我希望這不是重新定義的變量仍然存在如config
模塊的屬性及其默認值。如果從__main__
調用load_source
,則一切順利。但是,如果它在一個包中使用,模塊中唯一的變量'left'是rc文件的變量。有一個MWE here。 direct.py
作品如預期,但不indirect.py
.
|-- run.sh # runs python {,in}direct.py
|-- altconfig.py # the rc file, redefines (only) BAR
|-- config.py -> testimp/config.py # symlink to use by direct.py
|-- direct.py # calls load_source directly
|-- indirect.py # calls load_source via uses_config.py
`-- testimp
|-- __init__.py
|-- config.py # default config, defines FOO and BAR
`-- uses_config.py
什麼進口的邏輯我缺少什麼?