在FastAPI网站学python:虚拟环境创建和使用
Python虚拟环境(virtual environment)是一个非常重要的工具,它允许开发者为每个项目创建独立的Python环境,隔离您为每个项目安装的软件包,从而避免不同项目之间的依赖冲突。
学习参考FastAPI官网文档:Virtual Environments - FastAPI
创建虚拟环境
创建一个工作目录
# 💬 Go to the home directory
cd
# 💬 Create a directory for all your code projects
mkdir code
# 💬 Enter into that code directory
cd code
# 💬 Create a directory for this project
mkdir awesome-project
# 💬 Enter into that project directory
cd awesome-project
当然也可以简化下输入:
# 回到用户主目录
cd
# 创建并进入code目录
mkdir code && cd code
# 创建并进入项目目录
mkdir awesome-project && cd awesome-project
创建虚拟环境
python -m venv .venv
根据python版本和操作系统不通,可能python命令也不同,比如在FreeBSD下python3.11版本的命令是:
python3.11 -m venv .venv
激活虚拟环境
source .venv/bin/activate
这是bash下的命令,如果在csh下,则使用
source .venv/bin/activate.csh
检查虚拟环境是否处于活动状态
which python
比如输出
which python
/home/skywalk/work/awesome/.venv/bin/python
管理python虚拟环境
升级pip
如果使用pip
来安装软件包(默认情况下,Python附带),则应该将其升级到最新版本。
安装软件包时,只需先升级pip
,就能解决许多奇特的错误。
python -m pip install --upgrade pip
当然大部分时候也可以简写成:
pip install pip -U
设置pip加速镜像
国内到pip官网的下载速度慢,所以要配置国内的pip加速镜像,有两种加速方法:
第一种是临时使用,每次使用都需要在pip命令后加入-i参数,如:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
第二种,使用pip config set global.index-url 存入配置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
添加.gitignore
¶
如果正在使用Git,则需要添加一个.gitignore
文件,从Git中排除.venv
中的所有内容。
echo "*" > .venv/.gitignore
安装软件包
激活环境后,就可以在其中安装软件包。
直接安装软件包
如果很着急,不想使用文件来声明项目的软件包要求,可以直接安装它们。
比如安装FastAPI
pip install "fastapi[standard]"
提示
从requirements.txt
安装
将程序所需的软件包和版本放入文件中(例如requirements.txt
或pyproject.toml
)是一个(非常)好主意。
如果有requirements.txt
,则可以这样来安装其软件包:
pip install -r requirements.txt
运行程序¶
激活虚拟环境后,您可以运行程序,它将使用虚拟环境中的Python,以及安装好的软件包。
比如我们写一个main.py文件,内容:
import os
name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")
然后执行:
python main.py
你好,世界
配置编辑器¶
编辑器确保将其配置为使用创建的相同虚拟环境(它可能会自动检测它),以便可以获得自动填充和错误关联管理。
停用虚拟环境¶
完成项目工作后,您可以停用虚拟环境。
deactivate
软件包安装在哪里¶
当安装Python时,它会在计算机中创建一些包含一些文件的目录。
其中一些目录负责存放安装的所有软件包。
比如安装FastAPI
pip install "fastapi[standard]"
这将下载一个带有FastAPI代码的压缩文件,通常来自PYPI.
它还将下载FastAPI依赖的其他软件包的文件。
然后,提取所有这些文件,并将它们放入计算机上的目录中。
默认情况下,它将将下载和提取的文件放在Python安装附带的目录中,对本文来说,就放在创建的.venv子目录的这个目录中:.venv/lib64/python3.11/site-packages/fastapi
总结
python虚拟环境可以将python环境隔离。由于ptyhon的软件包版本繁多,很多不同软件需要不同的软件版本,如果不使用虚拟环境,很可能发生一个软件安装,其它软件因为依赖库的版本不对就不能用的情况。
Python虚拟环境是管理项目依赖、避免版本冲突的重要工具。通过创建和使用虚拟环境,可以确保每个项目都有自己独立的Python解释器和依赖包,从而提高开发效率和项目的可维护性。