如何在virtualenv中使用ConfigParser?

时间:2010-10-21 14:20:52

标签: python virtualenv configparser

我编写了一个工具,可以在几个地方查找INI配置文件:/usr/share/usr/local/share~/.local/share和当前目录。

c = ConfigParser.RawConfigParser()
filenames = ['/usr/share/myconfig.conf',
             '/usr/local/share/myconfig.conf',
             os.path.expanduser('~/.local/share/myconfig.conf'),
             os.path.expanduser('./myconfig.conf')]
parsed_names = c.read(filenames)
for name in parsed_names:
    print 'using configuration file: ' + name

我已开始使用virtualenv,现在我的setup.py脚本将myconfig.conf安装到/path/to/virtual/env/share/。当virtualenv的路径每次都不同时,如何将此路径添加到ConfigParser搜索的路径列表中?另外,如果我安装到virtualenv,我还应该搜索系统/usr/share/usr/local/share目录吗?

1 个答案:

答案 0 :(得分:1)

你应该能够通过

获得venv共享路径
os.path.join(sys.prefix, 'share', 'myconfig.conf')

包括/usr/share/usr/local/share将取决于您的应用程序,以及不同用户的多次安装是否更有可能受益或受到全局计算机设置的伤害。在使用系统python时,使用上面的代码将包含'/usr/share/myconfig.conf',因此不明确地包含它可能更安全。