Python 中的环境变量2024 年 8 月 29 日 | 阅读 6 分钟 环境变量是软件开发中的一个关键概念,用于指定和保存系统特定的设置、路径和配置。它们使处理各种环境(例如开发、测试和生产)的设置变得更简单,并且提供了一种将配置信息与代码分离的机制。 本文将介绍如何使用 Python 环境变量来存储和检索关键配置信息。 什么是环境变量?环境变量是存储计算机系统或特定应用程序的配置信息和设置的系统级变量。这些变量可以由系统上运行的程序和脚本访问和更改,并且它们分别由操作系统或用户设置。 环境变量通常用于存储多个程序和脚本所需的数据,例如可执行路径、系统目录或远程服务认证信息。通过使用环境变量,这些规范可以设置一次,并由系统上运行的所有程序和脚本共享。 Python 的 os 模块提供了一个类似字典的接口来访问系统的环境变量,我们可以通过它访问环境变量。 在 Python 中设置和访问环境变量在 Python 中,可以使用多种方法设置和访问环境变量。最流行的方法之一是使用 os 模块,它提供了与操作系统交互的功能。 os.environ 字典表示当前环境变量,可用于设置环境变量。通过将值与新键关联,我们可以轻松添加新变量,如下所示 在此示例中,我们创建一个名为 MY_VAR 的新环境变量,并将其值设置为 my_value。 要访问现有环境变量的值,我们可以使用相同的 os.environ 字典并检索与键关联的值 输出 my_value 在此示例中,我们检索 MY_VAR 环境变量的值并将其分配给 my_var_value 变量。 从命令行设置环境变量除了在 Python 程序中设置环境变量,我们还可以从命令行设置环境变量。这对于在执行程序或脚本之前设置配置信息很有用。在 Python 中,我们可以使用 os 模块设置和接收环境变量。os 模块提供了一个类似字典的接口来访问系统的环境变量,环境变量本身以键值对的形式存储。 在基于 Unix 的系统(如 Linux 和 macOS)上,我们使用 export 命令,后跟变量名及其值来设置环境变量 这将 MY_VAR 环境变量设置为 my_value,仅对当前 shell 会话有效。 在 Windows 上,我们可以使用 setx 命令设置环境变量,如下所示 这会将 MY_VAR 环境变量永久设置为 my_value,因此它将对系统上的所有进程可用。 使用环境变量进行配置环境变量的主要用途之一是存储程序或应用程序的配置信息。这使得更改各种环境(例如开发、测试和生产)的设置变得更简单,而无需更新代码本身,因为现在配置和代码可以分离。 以连接到数据库的 Python 程序为例。数据库连接的登录名、密码和服务器地址可以存储在环境变量中,如下所示 为了获取环境变量 DB_NAME、DB_USER、DB_PASSWORD、DB_HOST 和 DB_PORT 的值,我们使用 os.environ 字典(如果未设置,则 DB_PORT 是可选的,默认为 5432)。PostgreSQL 数据库的连接就是使用这些值设置的。 通过将这些设置规范放在环境变量中,我们可以轻松地针对不同的情况进行调整,而无需更新代码。例如,对于我们的开发、测试和生产环境,我们可以将这些变量的值设置为不同的值。 使用环境变量的最佳实践。将环境变量用于配置时,遵循一些最佳实践非常重要,以确保我们的代码安全、可移植且易于维护。 1. 使用有意义的名称 命名环境变量时,使用描述它们所代表的配置细节的有意义的名称非常重要。这使得代码更容易理解和维护,特别是对于包含许多环境变量的大型项目。 例如,如果我们将 API 端点的 URL 存储在环境变量中,我们可以使用 API_URL 之类的名称,而不是 URL 之类的通用名称。这清楚地表明了变量的用途,并有助于避免与可能使用相同名称的其他变量混淆。 使用有意义的名称还可以使代码文档化更容易,并将其与其他开发人员共享。当其他人查看代码时,他们应该能够仅通过查看其名称来理解每个环境变量的用途。 2. 安全存储敏感数据 环境变量可以由系统上运行的所有进程访问,因此安全存储敏感数据(例如密码和访问密钥)非常重要。一种方法是将数据加密存储在文件或密钥存储中,并且仅在运行时将数据加载到环境变量中。 例如,我们可以将数据库连接的加密密码存储在名为 DB_PASSWORD_ENCRYPTED 的环境变量中。然后,我们的代码将读取此变量的值,解密密码,并使用它连接到数据库。 使用加密有助于保护敏感数据,防止在攻击者获得系统访问权限或环境变量意外泄露时被暴露。 另一个选择是使用安全的凭据存储,例如 HashiCorp Vault 或 AWS Secrets Manager,来存储敏感数据。这些服务提供用于检索和管理机密的 API,并且可以与我们的代码集成,以便在运行时安全地检索敏感数据。 3. 记录您的配置 记录您的环境变量及其值非常重要,特别是如果您要与其他开发人员共享代码或将其部署到多个环境。这使得更容易理解您的程序是如何配置的,并降低配置错误的风险。 记录环境变量有助于确保其他开发人员能够理解和使用我们的代码,并且还可以帮助我们在以后回到代码时记住每个变量的用途。 4. 使用库来管理环境变量 随着程序的增长,管理环境变量可能会变得更加复杂。Python 有几个可用的库可以帮助管理环境变量,例如 python-dotenv 和 environ-config。这些库可以从文件中加载环境变量,验证其值,并为缺失的变量提供默认值。 虽然环境变量可用于安全地存储敏感数据,但不应将其作为安全保障。环境变量可以由系统上运行的任何进程(包括潜在的攻击者)访问和修改。 如果我们的代码需要存储敏感数据,我们应该使用加密、安全凭据存储或其他安全方法来保护数据。我们还应该遵循安全最佳实践,例如限制对敏感数据的访问并定期审查我们的代码是否存在安全漏洞。 5. 使用配置管理系统 使用配置管理系统也可以是管理大型项目中环境变量的有用最佳实践。配置管理系统提供了一种自动化跨不同环境和服务器的配置部署和管理的方法。 一些流行的 Python 配置管理系统包括
通过使用配置管理系统,我们可以确保我们的环境变量在不同环境和服务器之间保持一致,并且可以根据需要轻松更新它们。这有助于减少错误并使在生产中管理我们的代码变得更容易。 结论控制系统范围配置和设置的有效方法是使用环境变量。我们可以使用 os 模块在 Python 中设置和检索环境变量,并且我们可以使用它们来保存程序和应用程序的配置信息。 下一个主题Excel Python 模块 |
简介:在本教程中,我们将学习关于。它以矩阵形式接收输入,可以按列执行字符串连接。它还处理列表变量的长度。当您想要垂直组合矩阵时,可以使用列表推导。示例:现在,我们给出了一些垂直组合的例子……
阅读 4 分钟
本教程大纲:局部和普遍认知过程 增强输出 识别常见趋势 深入分析最热门趋势 频率分析 趋势相关活动 可能包含千言万语的表格 所用语言分析 结束语 - 总结 全局和局部模式 即使我们可能不是 Twitter 的爱好者,我们也必须认识到...
阅读 12 分钟
在本教程中,我们将学习如何使用 Python 创建不同类型的空心金字塔图案。程序 1:在 Python 中制作简单空心金字塔的程序 代码:def hollow_pyramid( r ) : m = 0 for n in range(1, r +...
阅读 6 分钟
如今,要找到一台没有活动互联网连接的计算机几乎是不可能的。在 21 世纪,互联网具有至高无上的重要性。有多种方式可以将系统连接到互联网。第一种是使用传统电缆,即...
11 分钟阅读
在本文中,我们将讨论将函数作为参数传递给 Python。函数可以接受多个参数。这些参数可以是对象、变量(相同或不同数据类型)和函数。Python 函数是第一批优雅的小工具。在以下实例中,一个特性...
阅读 4 分钟
Python 中的 fabs 方法用于返回数字的绝对值。可以通过导入 math 模块来使用它。Python 中的 math 模块可用于实现不同的基本数学运算,如加法、减法、除法和乘法。它也可以用于...
阅读 3 分钟
在 Python 编程语言中,我们有字典的概念。字典是可变的,我们可以轻松地从字典中添加和删除项目。它是无序数据项的集合。字典由两部分组成,第一部分是...
阅读9分钟
作为数据科学家和计算机科学家,我们即使没有意识到,也经常在日常工作中处理寻根算法。这些算法旨在定位特定值的近似值、局部/全局最大值或最小值。我们在订单中利用寻根算法...
阅读 16 分钟
简介:在本教程中,我们将学习 Selenium Python 中的 execute_script 驱动程序方法。Selenium 模块用于使用 Python 进行自动测试。Selenium Python 绑定提供了一个简单的 API。使用 Selenium WebDriver,此 API 用于编写功能或验收测试。一个……
阅读 3 分钟
在 Python 中构建项目令人兴奋。Python 提供了不同的模块和库,使项目具有交互性。其中一个属性是图形用户界面 (GUI),可以使用 Tkinter、PyQt5、Kivy 等 Python 库添加到项目中。...
阅读20分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India