当前位置: 首页 > news >正文

在FastAPI网站学python:环境变量 Python Environment Variables

学习网址:Environment Variables - FastAPI

环境变量(也称为“env var”)是位于操作系统中Python代码之外的变量,可以被Python代码(或其他程序)读取。

作为安装Python等的一部分,环境变量对处理应用程序设置很有用。

创建和使用环境变量Env Vars¶

可以在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"#output:Hello Wade Wilson

当然如果是在c shell下,使用setenv 来创建环境变量。

% setenv test 66
% echo $test
66

在Python中读环境变量env vars¶

可以在Python之外、在终端(或任何其他方法)中创建环境变量,然后在Python中读取它们

例如,创建一个文件main.py,包含:

import osname = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")

然后在终端执行:

python3.11 main.py
Hello Wade Wilson from Python

因为前面设置了环境变量 MY_NAME是"Wade Wilson",所以代码里的name变量被赋值为"Wade Wilson" 。多说一句,如果环境里没有设置MY_NAME ,那么name = os.getenv("MY_NAME", "World")这句话会赋值“World”为变量name,最后输出就是:Hello World from Python 。

在python交互命令中执行也可以获取环境变量:

>>> import os
>>> 
>>> name = os.getenv("MY_NAME", "World")
>>> print(f"Hello {name} from Python")
Hello Wade Wilson from Python

类型和验证¶

这些环境变量只能处理文本字符串,因为它们是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

当在终端中键入命令时,操作系统会在PATH环境变量中列出的每个目录中寻找程序。

例如,当在终端中键入python,操作系统会在该列表中的第一个目录中查找一个名为python的程序。

如果它找到它,那么它就会使用它。否则,它会一直查看其他目录

安装Python并更新PATH

当安装Python时,系统可能会询问您是否要更新PATH环境变量。

假设安装了Python到这个目录/opt/custompython/bin,如果同意更新PATH环境变量,那么安装程序将向PATH环境变量添加/opt/custompython/bin

它可能看起来像这样:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin

这样,当在终端中键入python时,系统将在/opt/custompython/bin(最后一个目录)中找到Python程序并使用该程序。

相当于输入:

/opt/custompython/bin/python


http://www.mrgr.cn/news/52734.html

相关文章:

  • React 列表 Keys
  • itext 转换word文档转pdf
  • 231321321
  • Spring Boot 中的 @RequestMapping 和 Spring 中的 @RequestMapping 有什么区别?
  • Python | Leetcode Python题解之第492题构造矩形
  • AI学习指南深度学习篇-预训练模型的数学原理
  • TCP/IP 寻址
  • 【ShuQiHere】Logic Programming:探索逻辑编程的奇妙世界
  • 在FastAPI网站学python:虚拟环境创建和使用
  • Python列表专题:插入元素性能分析
  • Pytest库应用详解
  • 数据库优化策略
  • 可编辑73页PPT | 企业智慧能源管控平台建设方案
  • 发布专利的基本流程:
  • 使用 Python 的 mock 库进行依赖注入
  • 设计一个支持自动化测试执行的测试框架
  • DS链式二叉树的遍历(11)
  • OpenCV学习笔记5——图像的数值计算
  • stm32 单片机使用 rt-thread 的syswatch 系统守护软件包
  • 使用 pytest 进行测试驱动开发(TDD)