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

Python的虚拟环境

文章目录

  • 环境
  • Python虚拟环境简介
  • 实现方式
  • venv
    • 创建虚拟环境
    • 激活虚拟环境
    • 安装包
    • VSCode
    • requirement.txt
    • 解除激活
  • 参考

环境

  • Windows 11 专业版
  • Python 3.13.3
  • PowerShell 7.5.1
  • VSCode 1.100.1

Python虚拟环境简介

Python虚拟环境(Virtual Environment)是一个独立的Python运行环境,允许你在同一台机器上为不同项目创建隔离的Python工作空间。

这样,不同项目可以使用不同版本的Python包,比如,项目A使用 numpy==1.21 版本,同时项目B使用 numpy==2.0 版本,两个项目可以同时并存。

此外,可以精确记录项目所需的依赖,便于在其它环境部署(通常使用 requirements.txt 文件)。

实现方式

Python有几种创建虚拟环境的方式:

  • venv:Python 3.3+内置
  • virtualenv:第三方工具,支持Python 2和3
  • conda:Anaconda/Miniconda提供

本文只介绍 venv 方式。

venv

新建一个目录(比如 test0527 )作为项目的根目录。

创建虚拟环境

在该目录下运行:

python -m venv <env name>

即可创建一个本地虚拟环境。

比如:

PS C:\temp\test0527> python -m venv .venv

就在本地创建了一个 .venv 目录。

注:我使用的是Windows下的PowerShell。

激活虚拟环境

运行 .\.venv\Scripts\activate 来激活该虚拟环境:

PS C:\temp\test0527> .\.venv\Scripts\activate
(.venv) PS C:\temp\test0527> 

可见,虚拟环境激活后,在命令行最左边出现了 (.venv) 提示,表示你当前正在使用的虚拟环境名称。

注:若要解除激活,直接运行 deactivate 即可,因为激活时,已经把所在目录放在路径里了。

现在,查看一下 pythonpip 命令:

(.venv) PS C:\temp\test0527> where.exe python
C:\temp\test0527\.venv\Scripts\python.exe
C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\python.exe
(.venv) PS C:\temp\test0527> where.exe pip
C:\temp\test0527\.venv\Scripts\pip.exe
C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\pip.exe

注:可用 where.exe 或者 get-command 命令,二者略有不同。

可见,会用虚拟环境里的 pythonpip 了。

安装包

接下来,在虚拟环境里安装包,比如:

pip install openai

确认安装:

(.venv) PS C:\temp\test0527> pip list
Package           Version
----------------- ---------
annotated-types   0.7.0
anyio             4.9.0
certifi           2025.4.26
colorama          0.4.6
distro            1.9.0
h11               0.16.0
httpcore          1.0.9
httpx             0.28.1
idna              3.10
jiter             0.10.0
openai            1.82.0
pip               25.0.1
pydantic          2.11.5
pydantic_core     2.33.2
sniffio           1.3.1
tqdm              4.67.1
typing_extensions 4.13.2
typing-inspection 0.4.1

可见,已经包含openai了。此时在虚拟环境之外(比如再开一个shell),运行 pip install ,则不会显示openai。

VSCode

在VSCode里,新建窗口,打开目录 test0527 ,创建文件 test1.py 如下:

from openai import OpenAI# for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`.
client = OpenAI(api_key="sk-xxxxxxx", base_url="https://api.deepseek.com")response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "system", "content": "You are a helpful assistant"},{"role": "user", "content": "Hello"},],max_tokens=1024,temperature=0.7,stream=False
)print(response.choices[0].message.content)

注:这里的API key使用了 xxxxxxx ,更常见的做法是把敏感信息放在环境变量里,然后代码从环境变量读取信息。

运行文件,报错:

ModuleNotFoundError: No module named 'openai'

不是已经安装 openai 包了吗,为什么还报错呢?

这是因为,在VSCode的环境里,还没有激活虚拟环境。

Ctrl + Shift + P ,然后选择 Python: Select Interpreter ,接下来选择虚拟环境里的Python,如下图所示:

在这里插入图片描述

可以看到,右下角已经显示出Python版本和虚拟环境:

在这里插入图片描述

现在,再运行代码,就OK了。
在这里插入图片描述

注:这里的命令行,最左边并没有显示虚拟环境名称,但实际上已经激活了。

requirement.txt

在当前环境下,运行:

pip freeze > requirements.txt

生成 requirements.txt 文件,里面包含了项目所依赖的包:

annotated-types==0.7.0
anyio==4.9.0
certifi==2025.4.26
colorama==0.4.6
distro==1.9.0
h11==0.16.0
httpcore==1.0.9
httpx==0.28.1
idna==3.10
jiter==0.10.0
openai==1.82.0
pydantic==2.11.5
pydantic_core==2.33.2
sniffio==1.3.1
tqdm==4.67.1
typing-inspection==0.4.1
typing_extensions==4.13.2

把该文件复制到另外一个新创建的环境里,运行:

pip install -r requirements.txt

即可一键安装所有依赖。

解除激活

运行 deactivate 命令可解除虚拟环境的激活状态。

参考

  • pip help
  • pip help xxx
http://www.xdnf.cn/news/677989.html

相关文章:

  • 4 月 62100 款 App 被谷歌下架!环比增长 28%
  • 英码科技携带 “无感知AI数字课堂”解决方案,亮相第22届广东教育装备展
  • redis高并发问题
  • Common JS和ES Module的区别
  • 6.4.5_关键路径
  • 窗口函数总结篇
  • -动静态库简单使用
  • ABC 352
  • 依赖倒置原则 (Dependency Inversion Principle, DIP)
  • 分块查找详解
  • 第二章 1.3 数据采集风险的现有技术和解决方案
  • RK3568 OH5.1 镜像烧录
  • python第34天打卡
  • 深耕数字化赛道,联众优车以创新风控体系构筑汽车金融护城河
  • Fine-tuning:微调技术,训练方式,LLaMA-Factory,ms-swift
  • AI智能分析网关V4垃圾桶满溢检测算法打造城市/公园/街道等场景应用方案
  • 浅谈Mysql的MVCC机制(RC与RR隔离级别)
  • LeetCode 1696. 跳跃游戏 VI(中等)
  • AI Agent开发第75课-数据、张量、流水线并行全解析
  • 【Web应用】若依:基础篇03-入门案例,若依代码生成器生成前后端代码
  • Web通信协议全景解析:从HTTP到WebService的技术演进与对比
  • 如何寻找大模型在企业业务中的价值?
  • Anaconda下载安装+配置虚拟环境保姆级教程(2025版)
  • 实时数仓flick+clickhouse启动命令
  • 第一个ASP.NET项目
  • 【Elasticsearch】retry_on_conflict
  • Python中while 1和while True有何区别?深入解析无限循环的写法选择
  • 百胜咨询公司:企业EcoVadis认证的专业导航者
  • SIGGRAPH 2025 | 快手可灵团队提出3D感知的电影级文本到视频生成框架CineMaster
  • 鸿蒙5开发宝藏案例分享---一多断点开发实践