定义模块配置文件的路径

时间:2010-08-16 20:57:48

标签: python configuration cross-platform

我正在开发的Python模块在/path/to/module/conf.conf中有一个主配置文件。 /path/to/module /取决于平台(例如,OS X中为/Users/me/module,Linux中为/home/me/module等。)

目前我在/path/to/module中定义__init__.py,我在其中使用逻辑:

if sys.platform == 'darwin':
 ROOT = '/Users/me/module'
elif sys.platform == 'linux':
 ROOT = '/home/me/module'
# et cetera

获得配置文件根目录后,我可以在任何地方打开conf.conf

你有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

__init__.py内,您可以使用__init_.py魔术变量获取__file__脚本所在的目录,如下所示:

from os.path import dirname
ROOT = dirname(__file__)

然后您知道conf.conf位于os.path.join(ROOT, 'conf.conf')