环境变量¶
在我们深入代码之前,让我们先介绍一下 基础知识,我们需要理解如何在 Python(和编程)中进行通用操作。让我们了解一下 环境变量。
提示
如果您已经知道什么是“环境变量”以及如何使用它们,请随时跳过此部分。
环境变量(也称为“env var”)是一个存在于 Python 代码外部,在操作系统中的变量,可以被您的 Python 代码(或其他程序)读取。
环境变量对于处理应用程序设置、作为 Python 安装的一部分等非常有用。
创建和使用环境变量¶
您可以在 shell(终端)中创建和使用环境变量,而无需 Python
// You could create an env var MY_NAME with
$ export MY_NAME="Wade Wilson"
// Then you could use it with other programs, like
$ echo "Hello $MY_NAME"
Hello Wade Wilson
// Create an env var MY_NAME
$ $Env:MY_NAME = "Wade Wilson"
// Use it with other programs, like
$ echo "Hello $Env:MY_NAME"
Hello Wade Wilson
在 Python 中读取环境变量¶
您也可以在 Python 外部,在终端(或使用任何其他方法)中创建环境变量,然后在 Python 中读取它们。
例如,您可以创建一个包含以下内容的文件 main.py
import os
name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")
然后您可以调用该 Python 程序
// Here we don't set the env var yet
$ python main.py
// As we didn't set the env var, we get the default value
Hello World from Python
// But if we create an environment variable first
$ export MY_NAME="Wade Wilson"
// And then call the program again
$ python main.py
// Now it can read the environment variable
Hello Wade Wilson from Python
// Here we don't set the env var yet
$ python main.py
// As we didn't set the env var, we get the default value
Hello World from Python
// But if we create an environment variable first
$ $Env:MY_NAME = "Wade Wilson"
// And then call the program again
$ python main.py
// Now it can read the environment variable
Hello Wade Wilson from Python
由于环境变量可以在代码外部设置,但可以被代码读取,并且不必与其余文件一起存储(提交到 git
),因此通常将它们用于配置或 设置。
您还可以仅为 特定程序调用 创建环境变量,该环境变量仅对该程序可用,并且仅在其持续时间内可用。
要做到这一点,请在程序本身之前在同一行创建它
// Create an env var MY_NAME in line for this program call
$ MY_NAME="Wade Wilson" python main.py
// Now it can read the environment variable
Hello Wade Wilson from Python
// The env var no longer exists afterwards
$ python main.py
Hello World from Python
提示
您可以在 The Twelve-Factor App: Config 中阅读更多相关信息。
类型和验证¶
这些环境变量只能处理 文本字符串,因为它们在 Python 外部,并且必须与其他程序和系统的其余部分(甚至与不同的操作系统,如 Linux、Windows、macOS)兼容。
这意味着从环境变量在 Python 中读取的任何值都将是 str
,并且任何转换为不同类型或任何验证都必须在代码中完成。
PATH
环境变量¶
有一个 特殊 的环境变量称为 PATH
,操作系统(Linux、macOS、Windows)使用它来查找要运行的程序。
变量 PATH
的值是一个长字符串,由目录组成,目录之间在 Linux 和 macOS 上用冒号 :
分隔,在 Windows 上用分号 ;
分隔。
例如,PATH
环境变量可能如下所示
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
这意味着系统应该在以下目录中查找程序
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32
这意味着系统应该在以下目录中查找程序
C:\Program Files\Python312\Scripts
C:\Program Files\Python312
C:\Windows\System32
当您在终端中键入 命令 时,操作系统会在 PATH
环境变量中列出的 每个目录 中 查找 程序。
例如,当您在终端中键入 python
时,操作系统会在该列表中 第一个目录 中查找名为 python
的程序。
如果找到,它将 使用它。否则,它会继续在 其他目录 中查找。
安装 Python 并更新 PATH
¶
当您安装 Python 时,可能会询问您是否要更新 PATH
环境变量。
假设您安装了 Python,它最终位于目录 /opt/custompython/bin
中。
如果您说是更新 PATH
环境变量,则安装程序会将 /opt/custompython/bin
添加到 PATH
环境变量。
它可能看起来像这样
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin
这样,当您在终端中键入 python
时,系统将在 /opt/custompython/bin
(最后一个目录)中找到 Python 程序并使用该程序。
假设您安装了 Python,它最终位于目录 C:\opt\custompython\bin
中。
如果您说是更新 PATH
环境变量,则安装程序会将 C:\opt\custompython\bin
添加到 PATH
环境变量。
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin
这样,当您在终端中键入 python
时,系统将在 C:\opt\custompython\bin
(最后一个目录)中找到 Python 程序并使用该程序。
这样,当您在终端中键入 python
时,系统将在 /opt/custompython/bin
(最后一个目录)中找到 Python 程序并使用该程序。
所以,如果您键入
$ python
系统将在 /opt/custompython/bin
中 找到 python
程序并运行它。
这大致相当于键入
$ /opt/custompython/bin/python
系统将在 C:\opt\custompython\bin\python
中 找到 python
程序并运行它。
这大致相当于键入
$ C:\opt\custompython\bin\python
在学习 虚拟环境 时,此信息将很有用。
结论¶
通过本文,您应该对 环境变量 是什么以及如何在 Python 中使用它们有一个基本的了解。
您还可以在 Wikipedia for Environment Variable 中阅读更多相关信息。
在许多情况下,环境变量的用途和适用性可能不是很明显。但是当您进行开发时,它们会不断出现在许多不同的场景中,因此了解它们是很有好处的。
例如,您将在下一节关于 虚拟环境 中需要此信息。