在FastAPI网站学python:虚拟环境创建和使用

ops/2024/10/18 8:25:50/

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.txtpyproject.toml)是一个(非常)好主意。

如果有requirements.txt,则可以这样来安装其软件包:

pip install -r requirements.txt

 

运行程序¶

激活虚拟环境后,您可以运行程序,它将使用虚拟环境中的Python,以及安装好的软件包。

比如我们写一个main.py文件,内容:

import osname = 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解释器和依赖包,从而提高开发效率和项目的可维护性。


http://www.ppmy.cn/ops/126428.html

相关文章

Spring Boot 整合达梦

Maven 依赖 <dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.2.192</version></dependency> yml配置 datasource:master:url: jdbc:dm://192.168.211.113:30236username: WE…

等效指令速度评测新视角:深入解析吉普森Gibson法

等效指令速度&#xff08;吉普森Gibson法&#xff09;是一种用于评测计算机性能的方法&#xff0c;以下是对其的详细解释&#xff1a; 一、定义、原理 等效指令速度法是在指令执行速度的基础之上进阶发展的一种评测标准。该方法通过综合考虑每条指令的执行时间以及它们在全部…

UML(Unified Modeling Language,统一建模语言)

UML&#xff08;Unified Modeling Language&#xff0c;统一建模语言&#xff09;是一种标准化的图形化语言&#xff0c;用于软件工程中的可视化建模。UML由Grady Booch、James Rumbaugh和Ivar Jacobson共同开发&#xff0c;他们各自的工作&#xff08;Booch方法、OMT方法和OOS…

windows和linux的一些使用问题一一记录

文章目录 windows 11 激活wsl文件共享命令互通wslg网络 Hyper-V双系统遇到再记录……… windows 11 激活 然后执行 slmgr /skms kms.03k.org slmgr /atowsl 卡死打开任务管理关闭下就行了 wsl --list -v # 安装的 wsl --list --online #可以安装的wsl -d kali-linux # 启…

八股面试3(自用)

基本数据类型和引用数据类型区别 java中数据类型分为基本数据类型和引用数据类型 8大基本数据类型 1.整数&#xff1a;int&#xff0c;long&#xff0c;short&#xff0c;byte 2.浮点类型&#xff1a;float&#xff0c;double 3.字符类型&#xff1a;char 4.布尔类型&…

Java之集合介绍

一、Java集合概述 Java集合框架&#xff08;Java Collections Framework&#xff09;是Java提供的一套用于存储和操作数据的接口、实现类和算法的统一架构。它大大简化了数据处理的复杂性&#xff0c;提高了代码的可重用性和效率。集合框架主要由几个核心接口组成&#xff0c;…

【python】OpenCV—Fun Mirrors

文章目录 1、准备工作2、原理介绍3、代码实现4、效果展示5、参考 1、准备工作 pip install vacm2、原理介绍 在OpenCV中&#xff0c;VCAM 库是一个用于简化创建三维曲面、定义虚拟摄像机、设置参数以及进行投影任务的工具。它特别适用于实现如哈哈镜等图像变形效果。 一、VC…

解析 MySQL 查询优化:提升性能的十个关键策略

1. 避免全表扫描 当查询的数据量非常大时&#xff0c;全表扫描的效率会很低。应尽量通过在WHERE和ORDER BY涉及的列上创建索引&#xff0c;避免全表扫描。索引就像一本书的目录&#xff0c;可以快速定位到需要的数据&#xff0c;而不用从头开始逐页查找。 示例&#xff1a; 如…