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