Python虚拟环境很简单,看完你就会了

本文介绍了Python虚拟环境的管理,重点讲解了如何使用conda和venv创建、激活、管理第三方库及退出虚拟环境。conda创建虚拟环境的指令如`conda create -n env1 python=3.8.8`,激活环境用`conda activate env1`,删除环境用`conda env remove -n env1`。venv则通过`python -m venv`创建环境,`activate`脚本激活,`deactivate`退出。文章还提供了相关操作的详细指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是才哥。

最近有粉丝询问关于Python虚拟环境的一些操作,刚好平时也会涉及到这方面的使用,那么今天咱们就来简单介绍一下吧。

1. 基于conda管理虚拟环境

由于笔者常用的是Anaconda,所以这里先介绍基于conda的虚拟环境操作。

一般来说,有两种管理虚拟环境的方式:一种是可视化操作,一种是命令行操作。

1.1. 创建虚拟环境

其一是通过Anconada Navigator 可视化操作,选中Environments点击最下方的Create即可进入到创建虚拟环境的页面。

其二是在命令行通过指令进行创建,后续介绍的几种方案也是类似。

# 指令
conda create -n env1 python=3.8.8

指令中,env1是虚拟环境名称,可以自定义;python=3.8.8是指定python版本,可以自定义。

1.2. 激活虚拟环境

当创建好虚拟环境后,会弹出以下提示:

done
#
# To activate this environment, use
#
#     $ conda activate env1
#
# To deactivate an active environment, use
#
#     $ conda deactivate

这些提示其实也很好的告诉了我们关于激活退出虚拟环境的操作指令

# 激活虚拟环境
conda activate env1

指令中,env1是待激活的虚拟环境名称

激活虚拟环境env1

我们可以看到,在进行虚拟环境激活后,最前面会显示虚拟环境的名称 env1(上图中标红框内)

1.3. 管理虚拟环境第三方库

只有当我们激活了指定的虚拟环境后,就可以通过pipconda直接进行第三方库的管理。

安装第三方库

我们也可以通过-n参数指定需要安装第三方库的虚拟环境进行跨环境安装。

# env1是待安装第三方库的虚拟环境名称,numpy是待安装的第三方库
conda install -n env1 numpy

跨环境安装第三方库

1.4. 退出虚拟环境

当我们激活了虚拟环境env1后,我们可以通过指令conda deactivate退出该虚拟环境并回到基础base环境

退出虚拟环境

1.5. 删除虚拟环境

# 删除虚拟环境
conda env remove -n env1
# 或者
conda remove -n env1 --all

1.6. 更多操作指令

查看当前环境下已安装的第三方库

conda list

查看指定环境下已安装的第三方库

conda list -n env1

更新指定环境的第三方库

conda update -n env1 numpy

删除指定环境的第三方库

conda remove -n env1 numpy

查看全部虚拟环境

conda info -e
# 或者
conda env list

前面带有符号*的是指当前环境

更新全部第三方库

conda update --all 

2. 基于venv管理虚拟环境

venvPython标准库内置的虚拟环境管理工具,在python3.3之后登上舞台

# 创建虚拟环境(其中 F:\py_env\env2 是虚拟环境路径)
>>>python -m venv F:\py_env\env2

# 激活虚拟环境(运行 激活脚本)
>>>F:\py_env\env2\Scripts\activate

# 安装、更新、删除第三库方法同常规
>>>pip install plotly
>>>pip install --upgrade plotly
>>>pip uninstall plotly

# 退出虚拟环境
>>>deactivate

# 删除虚拟环境(最简单可以直接删除虚拟环境文件夹)

关于这部分更详细的操作可以查阅python官方文档,参考地址:

https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment

以上就是本次全部内容,欢迎大家留言交流~

<think>嗯,用户问Python虚拟环境是否自带Python解释器。这个问题看起来简单,但需要仔细解释清楚。用户可能刚接触Python开发环境管理,或者在使用虚拟环境时遇到了困惑。 从用户提供的引用来看,引用[1]提到虚拟环境本质上是目录,引用[3]展示了虚拟环境内的pip操作,但都没直接回答解释器问题。用户特别强调"是否自带",说明ta可能担心虚拟环境会完全复制解释器导致占用空间过大。 需要明确两点核心:第一,虚拟环境确实包含解释器副本;第二,但这是通过符号链接实现的轻量级复制。Windows和Unix系统实现方式不同,但原理相似。用户可能不知道解释器副本是链接到系统解释器的,这很重要。 在解释时应该突出"轻量级"这个特点,因为这是用户最关心的空间问题。同时要说明隔离性原理——正是因为有独立解释器副本,才能实现依赖隔离。最后补充虚拟环境创建命令作为实用参考,这样用户看完就能立即实践。 用户似乎比较技术型,所以可以适当深入一点原理,但还是要保持清晰。ta可能下一步会问如何删除虚拟环境或者空间占用细节,所以在最后的相关问题里放了这两个方向。</think>关于Python虚拟环境是否包含Python解释器,答案如下: ### 核心结论 **Python虚拟环境包含轻量级的Python解释器副本**,但并非完全独立安装。其实现机制如下: 1. **解释器复制方式** 创建虚拟环境时(如执行 `python -m venv myenv`): - 系统会复制**主环境的Python解释器二进制文件**到虚拟环境目录 - 在Unix系统中创建**符号链接**(如 `myenv/bin/python`) - 在Windows系统中创建**硬链接或直接复制**(如 `myenv\Scripts\python.exe`) 2. **空间优化设计** 虚拟环境通过以下方式保持轻量: - 解释器文件仅占用 **2-10MB**(原始安装的1/10) - 共享主环境的**标准库**(避免重复存储) - 独立存储第三方库(在 `myenv/lib/pythonX.X/site-packages`) 3. **隔离性原理** ```mermaid graph LR A[主环境] -->|复制解释器| B[虚拟环境] B -->|独立路径| C[专属site-packages] B -->|符号链接| D[共享标准库] ``` 当激活虚拟环境后: - `sys.prefix` 指向虚拟环境目录 - Python进程优先加载虚拟环境下的 `site-packages` - 环境变量 `PATH` 被修改,确保优先调用虚拟环境的解释器 ### 验证方法 1. **查看解释器路径**(激活环境后): ```bash # Unix/macOS which python # Windows where python ``` 输出示例:`/path/to/myenv/bin/python` 2. **检查标准库共享**: ```python import os print(os.__file__) # 输出指向主环境的标准库路径 ``` ### 创建虚拟环境示例 ```bash # 创建环境(包含解释器副本) python -m venv myenv # 激活环境 # Unix/macOS source myenv/bin/activate # Windows myenv\Scripts\activate # 验证解释器位置 python -c "import sys; print(sys.executable)" ``` ### 关键区别 | 特性 | 主环境解释器 | 虚拟环境解释器 | |---------------------|-------------------|---------------------| | 存储位置 | 系统目录 | 虚拟环境目录 | | 磁盘占用 | 完整安装(~100MB) | 轻量副本(~5MB) | | 标准库依赖 | 独立 | 链接到主环境 | | 第三方包路径 | 全局site-packages | 虚拟环境site-packages | > 虚拟环境的解释器通过链接复用主环境的标准库,但拥有独立的包安装路径和环境变量,从而实现项目依赖隔离[^1][^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值