私はGoogle Maps APIの秘密鍵を使用する小さなPythonプログラムを持っています。私は自分のコードをチェックインする準備ができています。私はSVNに秘密鍵を含めたくありません。秘密鍵とパスワードをPythonに格納する場所
標準PHPアプリケーションでは、秘密鍵、データベースパスワード、およびその他のアプリケーション固有の設定をLocalSettings.phpに入れます。 Pythonプログラマーが見つけて変更すると思われる同様のファイル/場所はありますか?
私はGoogle Maps APIの秘密鍵を使用する小さなPythonプログラムを持っています。私は自分のコードをチェックインする準備ができています。私はSVNに秘密鍵を含めたくありません。秘密鍵とパスワードをPythonに格納する場所
標準PHPアプリケーションでは、秘密鍵、データベースパスワード、およびその他のアプリケーション固有の設定をLocalSettings.phpに入れます。 Pythonプログラマーが見つけて変更すると思われる同様のファイル/場所はありますか?
いいえ、標準的な場所はありません - Windowsでは通常os.path.join(os.environ['APPDATA'], 'appname')
のディレクトリにあり、Unixでは通常はos.path.join(os.environ['HOME'], '.appname')
です。
ユーザは、独自の秘密鍵を設定する必要があります。設定ファイルは、この情報を保存するのに最適な場所です。
設定ファイルにはいくつかの選択肢があります。
設定ファイルの解析にはConfigParser
を使用してください。
設定ファイルとして単純なPythonモジュールを使用します。そのファイルから値をロードするには、単にexecfile
を使用できます。
独自の設定ファイル表記を作成し、それを解析します。
+1ですが、標準インポートよりexecfileを使用する理由は何ですか? – ChristopheD
"グローバル"を私が作成した辞書にロードしたいからです。それは適切なモジュールではなく、私は一般的に、いくつかのグローバル以外のものは望んでいません。 –
任意のパスがそうのように、os.path.expanduser()
と共通〜(チルダ)を拡大することにより、クロスプラットフォームな方法でユーザーのホームディレクトリを参照することができます。
appdir = os.path.join(os.path.expanduser('~'), '.myapp')
私のWindowsマシンでは、 'os.path.expanduser( '〜')'は 'C:\ Documents and Settings \ Vinay Sajip'に展開されます。これはアプリケーションデータを置くのに推奨される場所ではありません。推奨される場所は、私の答えで述べたように、環境変数 'APPDATA'によって指定されています。 この質問は、ユーザーのホームディレクトリの検索方法ではなく、アプリケーションの構成データを保存する場所を尋ねていたことに注意してください。同じことではありません! –
おかげビナイを。私はexecfile(os.environment ['HOME']、 '。appname'))で動作するようにしました。 execfileメソッドのためにS.Lottに感謝します。答えは – brianegge