質問

python プロジェクトにおいて、基準のディレクトリを参照する設定・規約について、一般的なものはありますか?

背景

例えば Rails では、そのフレームワークに乗っかってコードを書く場合、 Rails.root という変数が参照可能で、それはプロジェクトのルートディレクトリが参照できます。例えば、 Rails.root / 'config' / 'foo_setting.yml' とすると、「プロジェクトルート/config/foo_setting.yml」のパスに解決が可能です。

今、 python のプロジェクトを開発していて、そこでコード中において「プロジェクトルート/conf/sqlalchemy.yml」ファイルの中身を参照したくなりました。毎回、そのパスを利用するコードにおいて、相対パスで指定してやれば参照は可能そうですが、しかし、コード中の相対パスは、コードベースが発展するに従い構造化され、その際に(コードファイル自体の移動により)変更を行う必要がありそうだ、と思っています。

なので、「プロジェクトルートからの相対パス」をアプリケーションのコード中で解決したいと思ったのですが、これは一般的 python プロジェクトにおいてどのように実装されますか?