4

将来使用するためにディスクにキャッシュしたい大きなデータファイルを生成するpythonモジュールがあります。通常のユーザーの場合、キャッシュは最終的に数百 MB になる可能性がありますが、計算時間を大幅に節約できます。

ファイルはモジュールと共に配布されませんが、コードが特定のパラメーター セットで初めて実行されるときに生成されます。

これまでのところ、私は 1 つのファイル モジュールを自分で使用し、それらをモジュール (data/) に関連するハードコードされたパスに配置してきました。しかし、このモジュールを distutils を使用して Python パッケージで配布する必要があり、それを行う標準的な方法があるかどうか疑問に思っていました。

私は scipy.weave のコンパイル済みキャッシュのようなものを考えていましたが、それを行うためのより最新のサポートされている方法があるかどうか疑問に思っています。*nix プラットフォームでは、それが入ることを期待してい~/.somethingますが、Windows に相当するものが何であるかはわかりません。また、これは、ユーザーがより便利な場合は別の場所にポイントしたり、ユーザー間でキャッシュディレクトリを共有したりできるように構成可能にする必要があります。そのような構成ファイルはどのように機能する必要がありますか? どこに行くべきですか?

または、setup.pyの横にある構成ファイルを介して、またはsetup.pyを手動で編集して設定し、インストール前にモジュール内のディレクトリをハードコードするかのいずれかで、インストールオプションとして使用する必要がありますか?

大いに受け取ったポインタ...

4

2 に答える 2

3

標準ライブラリ モジュールConfigParserを使用して、ini ファイル (またはカルチャによっては .rc ファイル) を解析できます。ファイルを見つけるには、os.path.expanduserが便利な関数で、"~/.mytoolrc" のようなパスに対してすべてのプラットフォームで正しいことを行います。ユーザーが物の場所をオーバーライドできるようにするには、os.environを介して環境変数を使用できます。

于 2009-12-09T15:54:17.537 に答える
2

フリー OS の世界では新しい標準があります: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

このモジュールは Windows および Max OS X で役立ちますが、XDG Base Dir Spec に関しては壊れているようです: http://pypi.python.org/pypi/appdirs

于 2011-12-21T16:28:15.553 に答える