Я написал пакет Python, который включает в себя базу данных bsddb с предварительно вычисленными значениями для одного из более трудоемких вычислений. Для простоты мой установочный скрипт устанавливает файл базы данных в тот же каталог, что и код, который обращается к базе данных (в Unix что-то вроде /usr/lib/python2.5/site-packages/mypackage/).
Как мне сохранить окончательное местоположение файла базы данных, чтобы мой код мог получить к нему доступ? Прямо сейчас я использую хак на основе переменной __file__
в модуле, который обращается к базе данных:
dbname = os.path.join(os.path.dirname(__file__), "database.dat")
Это работает, но кажется ... хакерским. Есть лучший способ сделать это? Мне бы хотелось, чтобы скрипт установки просто взял окончательное место установки из модуля distutils и поместил его в файл «dbconfig.py», который устанавливается вместе с кодом, который обращается к базе данных.