python激活venv做了什么

news/2025/1/10 10:39:41/文章来源:https://www.cnblogs.com/dx5800/p/18609456

当激活 Python 的虚拟环境(venv)时,激活脚本会对系统环境进行一系列临时修改,让终端的 Python 和相关工具使用虚拟环境中的版本和依赖。这些操作不会永久改变系统环境,只在当前终端会话中生效。


激活虚拟环境的操作详解

1. 修改 PATH 环境变量

  • 激活脚本会将虚拟环境的 bin(Linux/MacOS)或 Scripts(Windows)目录添加到环境变量 PATH 的开头。
  • 这样,虚拟环境中的 pythonpip 等工具会被优先找到并执行,而不是系统全局的版本。
  • 修改后的 PATH 可能类似于:
    PATH=<venv_path>/bin:$PATH  # Linux/MacOS
    PATH=<venv_path>\Scripts;%PATH%  # Windows
    
  • 例如,运行 python 时,实际执行的是虚拟环境中的 python 二进制文件。

2. 设置 VIRTUAL_ENV 环境变量

  • 激活脚本会设置一个 VIRTUAL_ENV 环境变量,指向虚拟环境的根目录,例如:
    VIRTUAL_ENV=/path/to/venv
    
  • 这个变量可以被一些工具(如 IDE 或脚本)用来检测当前是否处于虚拟环境中。

3. 修改终端提示符(Prompt)

  • 激活脚本会修改终端的提示符(例如 PS1),在原有提示符前面添加虚拟环境的名称,以提醒用户当前处于虚拟环境中:
    (venv) user@hostname:~/project$
    
  • 这是通过调整 Shell 环境变量(如 PS1)实现的。

4. 使用虚拟环境中的 pythonpip

  • 激活后,pythonpip 命令都会指向虚拟环境中的可执行文件。例如:
    which python  # Linux/MacOS
    # 输出: /path/to/venv/bin/pythonwhere python  # Windows
    # 输出: C:\path\to\venv\Scripts\python.exe
    
  • 安装的 Python 库会被放到虚拟环境的 site-packages 目录中,而不是系统全局目录。

5. 加载虚拟环境的依赖

  • 虚拟环境内的 Python 自带一个隔离的 sys.path,该路径只包含虚拟环境中的 site-packages 目录。
  • 激活虚拟环境后,所有导入的库(import)都只会来自虚拟环境的依赖。

激活脚本实现方式

  • Linux/MacOS
    激活脚本是一个 Shell 脚本,路径为 <venv>/bin/activate
  • Windows
    Windows 提供多个激活脚本:
    • <venv>\Scripts\activate.bat(适用于 CMD)。
    • <venv>\Scripts\Activate.ps1(适用于 PowerShell)。

这些脚本的主要逻辑是修改 PATH 和其他环境变量。


总结

激活虚拟环境的核心是通过调整终端的环境变量来切换到隔离的 Python 环境,从而使用虚拟环境中的依赖和工具,而不影响系统全局环境。

注意:该内容由由AIGC提供。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/867052.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Toeplitz矩阵

具有下面形式的矩阵称为 Toeplitz 矩阵 (即在同一条对角线上的元素都相等) • Toeplitz 矩阵只有 2n − 1 个独立元素, 因此在存储一个 Toepliz 矩阵时, 只需存储第一列和第一行 (或第一列和最后一列);• 如果 T 对称, 则只需存储第一列. 用途:

【转载】【cursor】解决 cursor IDE 不能正常给 python 代码高亮的问题

原文链接:How to use python with the Cursor IDE首先参照上面的解决方法进行配置,配置完成后若不生效,请检查:1. 在 cursor 中把本地和远程的 python 扩展设置都进行以下修改 2. 若修改后不生效,重启 python 插件(看不明白的话请留言)

2025 年,程序员如何找准技术“掘金点”?

大家好,我是 V 哥,最近有很多小伙伴来问V哥,悲催的2024终于过去了,有的早早就给自己放假等春节了,有的也没逃过临了被约喝咖啡☕️,都想着先过完年再考虑怎么办,躺平可不行,又有谁会跟钱过不支呢。2025 年,V 哥也跟一些行业大佬聊过,共同的一个点就是市场经济依然不会…

基于ODX的工程诊断仪 - DST.Tester

INTEWORK-DST(Tester Option,以下简称DST.Tester)是经纬恒润自主研发的工程诊断仪,适用于新车型和ECU的诊断和刷写。DST.Tester不仅支持多种ISO协议,也可以按照客户需求开发刷写流程,满足整车厂和零部件供应商的诊断工程师使用需求。概述INTEWORK-DST(Tester Option,以下简…

JS-25 字符串方法_indexOF()

indexOf方法用于确定一个字符串再另一个字符串中第一次出现的位置,返回结果是匹配开始的位置。如果返回-1,就表示不匹配 hello world.indexOf(o)//4 hello world.indexOf(a)//4-1 床前明月光,疑是地上霜。一去二三里,举头望明月,低头思故乡。.indexOf("一去二三里&qu…

点特征直方图

对点特征的描述常见的描述手段有,曲率、法线等,由于点云散乱无序形态各异,即使人眼是判别特征与非特征点都极其困难,所以仅仅凭借曲率、法线来对点云特征进行描述,显然是不够的。那如何准确或者全面的去描述点的特征呢,这也是很多算法的基石,特征描述准确与否直接会影响…

高斯金字塔,高斯模糊,高斯差分

高斯金字塔、高斯模糊和高斯差分是图像处理中非常重要的技术,常用于图像缩放、降噪、特征提取等领域。 1. 高斯模糊(Gaussian Blur) 高斯模糊是一种降噪技术,基于高斯函数的图像处理技术,用于平滑图像,减少噪声或细节。它在图像处理和计算机视觉中非常常用,尤其是在预处…

改造应用从容器tomcat迁移到pas(信创容器中间件)的适配工作

背景 近年来由于信创要求的重视,软件国产化越来越要提上日程了,相信在相关行业的人已经有很多开始在准备信创相关适配改造工作了吧 我们公司也一样,经过2个月的研究终于算是把我们的主要产品改造成功,下面我就介绍下: 我们无源代码的tomcat容器应用如何迁移到普元Pas 正文…

DolphinScheduler自身容错导致的服务器持续崩溃重大问题的排查与解决

01 问题复现 在DolphinScheduler中有如下一个Shell任务: current_timestamp() { date +"%Y-%m-%d %H:%M:%S" }TIMESTAMP=$(current_timestamp) echo $TIMESTAMP sleep 60在DolphinScheduler将工作流执行策略设置为并行:定时周期调度设置为10秒一次:将定时调度上…

NeurIPS 2024最佳论文,扩散模型的创新替代:基于多尺度预测的视觉自回归架构

本文将详细解读NeurIPS 2024最佳论文:**"Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction(视觉自回归建模:基于下一尺度预测的可扩展图像生成)"**。 该论文提出了视觉自回归建模(Visual Autoregressive Modeling,VAR)方…

2025 款 特斯拉 焕新版 Model Y All In One

2025 款 特斯拉 焕新版 Model Y All In One Tesla Model Y Juniper2025 款 特斯拉 焕新版 Model Y All In OneTesla Model Y Juniperdemos特斯拉 焕新版 Model Y 首发版速览(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.c…