2013-10-23 40 views
0

我想根據自己的名字來導入文件,例如:如何動態地導入模塊在Python

project/
    __init__.py 
    log.py 
    conf/
     __init__.py 
     logger_settings.py 
     other_settings.py 

在我conf/__init__.py文件我想有一些與此類似:

# -*- coding: utf-8 -*-               
# vim: tabstop=4 shiftwidth=4 softtabstop=4 expandtab       

import os                  
import sys                   
import json                   

def get_settings(identity):                
    """Settings."""                 

    try:                  
     from i import *               
    except ImportError as exc:             
     raise Exception('Eror importing config %s' % exc) 

所以比log.py文件我將能夠做這樣的事情:

#!/usr/bin/env python -u               
# -*- coding: utf-8 -*-               
# vim: tabstop=4 shiftwidth=4 softtabstop=4 expandtab       

import os                  
import logging                 

from project import conf              

CONF = conf.get_settings('logger_settings')            

def getLogger(identity ,log_file=CONF.log_file): 
    # Then access CONF to return settings 
    # For example: 
    # host = CONF.host would return something like 'localhost' 

我想有logger_settings.py這樣的:

log_file = '/mnt/logs/' 
host = 'localhost' 

我如何需要修改conf/__init__.py爲了實現這一目標?

+0

[這裏有一個類似的問題(http://stackoverflow.com/q/19540482/2183102),您可能會發現它的答案有用。 –

回答