【问题标题】:Where to store secret keys and password in Python在 Python 中存储密钥和密码的位置
【发布时间】:2010-11-09 22:52:31
【问题描述】:

我有一个小的 Python 程序,它使用 Google Maps API 密钥。我正准备签入我的代码,我不想在 SVN 中包含密钥。

在规范的 PHP 应用程序中,您将密钥、数据库密码和其他特定于应用程序的配置放在 LocalSettings.php 中。是否有 Python 程序员希望找到和修改的类似文件/位置?

【问题讨论】:

  • 谢谢维奈。我让它与 execfile(os.path.join(os.environ['HOME'], '.appname')) 一起工作。感谢 S.Lott 提供的 execfile 方法。

标签: python configuration google-maps


【解决方案1】:

用户必须配置自己的密钥。配置文件是保存这些信息的理想场所。

配置文件有多种选择。

  1. 使用ConfigParser 解析配置文件。

  2. 使用简单的 Python 模块作为配置文件。您可以简单地execfile 从该文件中加载值。

  3. 发明您自己的配置文件符号并对其进行解析。

【讨论】:

  • +1 的答案,但你为什么要使用 execfile 而不是标准导入?
  • 因为我希望将“全局变量”加载到我创建的字典中。它不是一个合适的模块,我通常只需要几个全局变量。
【解决方案2】:

不,没有标准位置 - 在 Windows 上,它通常位于目录 os.path.join(os.environ['APPDATA'], 'appname') 中,而在 Unix 上它通常位于 os.path.join(os.environ['HOME'], '.appname')

【讨论】:

    【解决方案3】:

    任何路径都可以通过使用os.path.expanduser() 扩展公共~(波浪号)以跨平台的方式引用用户的主目录,如下所示:

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

    【讨论】:

    • 不完全。在我的 Windows 机器上,os.path.expanduser('~') 扩展为 C:\Documents and Settings\Vinay Sajip,这不是放置应用程序数据的推荐位置。正如我在回答中提到的那样,该推荐位置由环境变量 APPDATA 指定。请注意,问题是询问在哪里存储应用程序配置数据,而不是如何找到用户的主目录。不是一回事!
    猜你喜欢
    • 2019-08-11
    • 2023-02-10
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2018-09-18
    • 2015-10-19
    相关资源
    最近更新 更多