python删除venv虚拟环境_python虚拟环境--virtualenv

本文介绍了Python虚拟环境管理工具virtualenv的安装与使用,包括创建、激活、停用和删除虚拟环境。同时,文章推荐并详细说明了virtualenvwrapper的安装与基本操作,如创建、切换、退出和删除虚拟环境,以及如何导出和导入Python环境的安装包。

简介

virtualenv 是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。

安装

pip install virtualenv

基本使用

为一个工程创建一个虚拟环境:

$ cd my_project_dir

$ virtualenv venv #venv为虚拟环境目录名,目录名自定义

virtualenv venv 将会在当前的目录中创建一个文件夹,包含了Python可执行文件,以及 pip 库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 venv )可以是任意的;若省略名字将会把文件均放在当前目录。

在任何你运行命令的目录中,这会创建Python的拷贝,并将之放在叫做 venv 的文件中。

你可以选择使用一个Python解释器:

$ virtualenv -p /usr/bin/python2.7 venv    # -p参数指定Python解释器程序路径

这将会使用 /usr/bin/python2.7 中的Python解释器。

要开始使用虚拟环境,其需要被激活:

$ source venv/bin/activate

从现在起,任何你使用pip安装的包将会放在 venv 文件夹中,与全局安装的Python隔绝开。

像平常一样安装包,比如:

$ pip install requests

如果你在虚拟环境中暂时完成了工作,则可以停用它:

$ . venv/bin/deactivate

这将会回到系统默认的Python解释器,包括已安装的库也会回到默认的。

要删除一个虚拟环境,只需删除它的文件夹。(执行 rm -rf venv )。

这里virtualenv 有些不便,因为virtual的启动、停止脚本都在特定文件夹,可能一段时间后,你可能会有很多个虚拟环境散落在系统各处,你可能忘记它们的名字或者位置。

virtualenvwrapper

鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。它把你所有的虚拟环境都放在一个地方。

安装virtualenvwrapper(确保virtualenv已安装)

pip install virtualenvwrapper

pip install virtualenvwrapper-win  #Windows使用该命令

安装完成后,在~/.bashrc写入以下内容

export WORKON_HOME=~/Envs

source /usr/local/bin/virtualenvwrapper.sh

第一行:virtualenvwrapper存放虚拟环境目录

第二行:virtrualenvwrapper会安装到python的bin目录下,所以该路径是python安装目录下bin/virtualenvwrapper.sh

source ~/.bashrc    #读入配置文件,立即生效

virtualenvwrapper基本使用

1.创建虚拟环境 mkvirtualenv

mkvirtualenv venv

这样会在WORKON_HOME变量指定的目录下新建名为venv的虚拟环境。

若想指定python版本,可通过"--python"指定python解释器

mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv

2. 基本命令

查看当前的虚拟环境目录

[root@localhost ~]# workon

py2

py3

切换到虚拟环境

[root@localhost ~]# workon py3

(py3) [root@localhost ~]#

退出虚拟环境

(py3) [root@localhost ~]# deactivate

[root@localhost ~]#

删除虚拟环境

rmvirtualenv venv

通过pip命令导出和导入Python环境安装包

1、导出Python环境安装包

[root@bogon ~]# pip freeze > packages.txt

这将会创建一个 packages.txt文件,其中包含了当前环境中所有包及各自的版本的简单列表(即pip list 所列出的包列表)

2、安装导入Python环境包

[root@bogon ~]# pip install -r packages.txt

<think> 我们正在讨论的是Python虚拟环境venv的定义。根据用户提供的引用,我们可以总结如下: 1. 引用[1]和[2]指出,venvPython 3.3+内置的库,用于创建轻量级的虚拟环境,提供与系统Python的隔离。 2. 引用[4]详细描述了venv创建的环境结构,包括bin(或Scripts)、include、lib等目录,以及它们的作用。 3. 引用[5]强调了虚拟环境的主要用途是项目隔离,允许每个项目有自己的Python解释器和包。 因此,我们给出venv虚拟环境的定义: **Python3-venv虚拟环境的定义** Python3-venv虚拟环境是一个由Python标准库`venv`模块创建和管理的隔离环境,它包含: - 独立的Python解释器(通常是系统Python解释器的副本或符号链接) - 专属的第三方包安装目录(位于`lib/pythonX.X/site-packages`) - 环境配置脚本(如激活脚本`activate`和配置文件`pyvenv.cfg`) 其核心设计目标是实现**项目级依赖隔离**,通过复制基础环境的结构但隔离包安装路径,避免不同项目间的包版本冲突以及系统Python环境的污染[^1][^2][^4][^5]。 --- ### 虚拟环境工作原理 根据引用[4],venv创建的环境结构如下: ``` venv/ ├── bin/ # 可执行文件目录(Windows为Scripts) │ ├── activate # 激活环境的脚本 │ ├── python # 指向特定版本解释器的符号链接 │ └── pip # 环境专属的pip ├── lib/ │ └── pythonX.X/ # Python版本号 │ └── site-packages/ # 三方包安装位置 └── pyvenv.cfg # 环境配置文件 ``` 关键特性: 1. **隔离依赖**:在虚拟环境中使用`pip`安装的包仅存在于`site-packages`中,不影响系统全局环境[^4]。 2. **独立解释器**:虚拟环境中的`python`命令指向创建时的基础解释器版本(如使用`python3.8 -m venv`则链接到系统Python3.8)[^3]。 3. **配置继承**:`pyvenv.cfg`中记录基础环境路径,但包搜索路径被重定向到本地`site-packages`[^4]。 --- ### 创建虚拟环境的正确方法 为避免引用[3]中出现的版本混乱问题,应明确指定Python版本: ```bash # 使用系统Python3.8创建环境 python3.8 -m venv myenv # 激活环境 source myenv/bin/activate # Linux/macOS .\myenv\Scripts\activate # Windows ``` --- §§相关问题§§ 1. 如何修复因系统Python版本升级导致的虚拟环境失效? 2. `venv`与`virtualenv`在实现隔离机制上有哪些本质区别? 3. 为什么虚拟环境中不需要安装`pip`但仍能使用? 4. 如何将虚拟环境迁移到其他机器使用? [^1]: Python官方文档明确建议使用venv隔离项目依赖 [^2]: 虚拟环境允许每个项目独立管理包版本 [^3]: 必须明确指定Python版本以保证环境稳定性 [^4]: venv通过重写包加载路径实现隔离 [^5]: 隔离环境是Python开发的最佳实践 </think> ### Python3-venv虚拟环境的定义与核心特性 Python3-venv虚拟环境是由Python标准库提供的**轻量级隔离环境**,其定义核心包含以下要素: 1. **环境隔离机制** 通过复制操作系统标准Python安装的文件结构,创建独立的目录树: ``` venv/ ├── bin/ # 可执行文件(含Python解释器) ├── lib/ # 依赖库和site-packages ├── include/ # C头文件 └── pyvenv.cfg # 环境配置文件 ``` 该结构确保所有操作(包安装、代码执行)仅在当前环境中生效,与系统Python完全隔离[^4]。 2. **核心功能特性** - **独立Python解释器** 虚拟环境中的`python`命令指向创建时指定的解释器版本(如`python3.8 -m venv`会固定使用3.8版本),避免因系统默认版本变更导致环境失效[^3]。 - **专属包存储空间** 所有通过`pip install`安装的包仅存放在`venv/lib/pythonX.X/site-packages`目录下,形成项目专属依赖库[^5]。 - **环境激活脚本** 提供`activate`脚本(支持bash/zsh/fish/PowerShell),通过临时修改`PATH`变量实现环境切换: ```bash source venv/bin/activate # 激活后终端提示符显示环境名 ``` 3. **技术实现原理** 虚拟环境通过两个关键技术实现隔离: - **路径重定向** 在`pyvenv.cfg`中配置`home`指向系统Python路径,同时设置`include-system-site-packages=false`禁用全局包[^4]。 - **符号链接机制** `bin/python`实际是系统Python解释器的符号链接,但运行时优先加载本地`site-packages`中的包[^4]。 4. **与系统环境的关系** $$ \text{虚拟环境} \approx \text{系统Python的精简副本} + \text{独立依赖层} $$ 这种设计既继承了系统Python的稳定性(无需重复安装解释器),又实现了依赖隔离(避免包冲突)[^2][^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值