2009-07-11 16 views
3

私はGoogle Maps APIの秘密鍵を使用する小さなPythonプログラムを持っています。私は自分のコードをチェックインする準備ができています。私はSVNに秘密鍵を含めたくありません。秘密鍵とパスワードをPythonに格納する場所

標準PHPアプリケーションでは、秘密鍵、データベースパスワード、およびその他のアプリケーション固有の設定をLocalSettings.phpに入れます。 Pythonプログラマーが見つけて変更すると思われる同様のファイル/場所はありますか?

+0

おかげビナイを。私はexecfile(os.environment ['HOME']、 '。appname'))で動作するようにしました。 execfileメソッドのためにS.Lottに感謝します。答えは – brianegge

答えて

3

いいえ、標準的な場所はありません - Windowsでは通常os.path.join(os.environ['APPDATA'], 'appname')のディレクトリにあり、Unixでは通常はos.path.join(os.environ['HOME'], '.appname')です。

3

ユーザは、独自の秘密鍵を設定する必要があります。設定ファイルは、この情報を保存するのに最適な場所です。

設定ファイルにはいくつかの選択肢があります。

  1. 設定ファイルの解析にはConfigParserを使用してください。

  2. 設定ファイルとして単純なPythonモジュールを使用します。そのファイルから値をロードするには、単にexecfileを使用できます。

  3. 独自の設定ファイル表記を作成し、それを解析します。

+0

+1ですが、標準インポートよりexecfileを使用する理由は何ですか? – ChristopheD

+0

"グローバル"を私が作成した辞書にロードしたいからです。それは適切なモジュールではなく、私は一般的に、いくつかのグローバル以外のものは望んでいません。 –

1

任意のパスがそうのように、os.path.expanduser()と共通〜(チルダ)を拡大することにより、クロスプラットフォームな方法でユーザーのホームディレクトリを参照することができます。

appdir = os.path.join(os.path.expanduser('~'), '.myapp') 
+0

私のWindowsマシンでは、 'os.path.expanduser( '〜')'は 'C:\ Documents and Settings \ Vinay Sajip'に展開されます。これはアプリケーションデータを置くのに推奨される場所ではありません。推奨される場所は、私の答えで述べたように、環境変数 'APPDATA'によって指定されています。 この質問は、ユーザーのホームディレクトリの検索方法ではなく、アプリケーションの構成データを保存する場所を尋ねていたことに注意してください。同じことではありません! –