Python venv 和 virtualenv 虚拟环境的基本使用

1.前言

venv 和 virtualenv 都是搭建虚拟环境的工具,virtualenv 是第三方开源的,而 venv 作为 virtualenv 的一个子集自 Python3.3 开始集成到标准库中,在 virtualenv 的文档中可以看到他们的区别:

没有 app-data 种子方法,可能会更慢;

没有那么可扩展;

无法为任意安装的 Python 版本创建虚拟环境(并自动发现这些);

无法通过 pip 升级;

没有那么丰富的编程 API(描述虚拟环境而不创建它们)。

因为是父子关系,所以操作也很相似。 

本文以 Windows10 / 11 + VSCode 作为演示环境。

2.VSCode 中使用 venv

官方文档:https://docs.python.org/zh-cn/3/library/venv.html

venv 是 Python3.3 新增的一个模块,可用于搭建虚拟环境,但只能指定本机已有的 Python 环境来创建虚拟环境。

大致使用步骤:

# 1.创建名为 env 的虚拟环境目录
python -m venv env
# 2.执行 activate 脚本激活虚拟环境
.\env\Scripts\Activate.ps1
# 3.在虚拟环境中进行作业
# 4.执行 deactivate 命令退出虚拟环境 

先执行 venv 指令创建虚拟环境:

python -m venv [虚拟环境路径]

创建时可以附加一些参数,如 system_site_packages 设置为 True 让系统环境的包可用,详见官方文档。 

执行 venv 命令后,VSCode 可以点右下角 Python 版本切换到虚拟环境的 Python,然后执行目录下的 activate 脚本激活虚拟环境。脚本在 Scripts 目录下,不同的平台和工具用不同的脚本:

VSCode 中我们执行 PowerShell 的 ps1 脚本,可能会报错:

既然没有权限就先开下权限,管理员权限打开 PowerShell,执行 Set-ExecutionPolicy 命令:

Set-ExecutionPolicy RemoteSigned

Set-ExecutionPolicy 文档:https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.security/set-executionpolicy

然后我们再回到 VSCode 执行  Activate.ps1 就可以激活虚拟环境了,激活后可以看到命令行前面有绿色的标记,括号内是我们虚拟环境的文件夹名。退出的话可以执行 deactivate 命令。

在虚拟环境中我们可以 pip 安装自己需要的包。

3.VSCode 中使用 virtualenv

官方文档:https://virtualenv.pypa.io/en/latest/index.html

virtualenv 是一个创建虚拟环境的第三方工具,目前(2023 年)仍然支持 Python2.7,功能比 venv 丰富一点。
我们先安装这个包:

pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple

 大致使用步骤:

# 1.创建名为 env 的虚拟环境目录
virtualenv env
# 2.执行 activate 脚本激活虚拟环境
.\env\Scripts\activate.ps1
# 3.在虚拟环境中进行作业
# 4.执行 deactivate 命令退出虚拟环境 

先执行 virtualenv 命令创建环境:

virtualenv [虚拟环境路径]
# 也可以指定本机其他版本 Python 来创建
virtualenv [虚拟环境路径] -p [指定Python路径或版本]
virtualenv [虚拟环境路径] --python = [指定Python路径或版本]

然后其他的操作就和 venv 差不多了, 先给 PowerShell 执行 ps1 开权限:

Set-ExecutionPolicy RemoteSigned

运行 activate.ps1 脚本激活虚拟环境,且 VSCode 右下角选择虚拟环境的 Python。

virtualenv 目前的 VSCode 没有像 venv 那样用绿色显示激活状态。

操作结束后同样是用 deactivate 退出虚拟环境。 

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

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

相关文章

WEB APIs day4 (1)

一、日期对象 1.实例化 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevi…

MySQL(十):MySQL语法-进阶

MySQL语法-进阶 数据类型Text 类型Number 类型Date 类型 ASALTER TABLEconcat、group_concatSQL注入阻止SQL注入方案一方案二方案三 HAVING 子句临时表正则表达式获取服务器元数据事务导出数据导出数据导出表作为原始数导出SQL格式的数据 导入数据解决无法导入问题使用 LOAD DA…

VS工程项目中属性中无Qt设置问题解决方案

VS工程项目中属性中无Qt设置问题解决方案 若VS工程中&#xff0c;创建的是Qt工程&#xff0c;或者从Qt Creator工程转换为VS 工程时&#xff0c;VS项目属性中确无Qt Project Setttings等设置时&#xff0c;可通过如下方案解决 1. 右键项目&#xff0c;在下拉框中选择Qt项 2.…

肯尼亚税务局如何利用RPA、AI等创新技术来推动税务合规增加税收?

在当今的数字化时代&#xff0c;税务部门的工作变得日益复杂。依赖手动程序为税务部门带来了巨大的困难&#xff0c;这使得在有效管理税收和实现收入目标上遇到了阻碍。手动流程往往效率低下&#xff0c;易出错&#xff0c;而且难以应对大规模的数据处理需求。如果不能解决该问…

Spring MVC相关注解运用 —— 中篇

目录 一、RESTful风格支持 1.1 RESTful风格介绍 1.2 postman使用 二、PathVariable 2.1 实例程序 2.2 测试结果 三、PostMapping、GetMapping、PutMapping、DeleteMapping 四、HiddenHttpMethodFilter 4.1 在web.xml配置过滤器 4.2 控制器方法 4.3 JSP页面 4.4 测…

Docker 仓库与注册表: 构建可靠的容器镜像生态系统

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

使用NVIDIA FX Composer验证多纹理合成效果

最近项目上有一个需求&#xff0c;需要将4张带透明通道纹理合成为一张&#xff0c;并且每张纹理指定一个全局透明度。由于纹理过多&#xff0c;合成效果无法保证&#xff0c;为了减少项目的风险&#xff0c;领导希望我先快速验证一下我们讨论的方法是否能完成项目的要求。因此我…

【数据结构】链表及无头单向非循环链表实现

目录 1.顺序表的问题 2.链表的概念、结构及分类 3.无头单向非循环链表实现 3.1创建节点 3.2头插数据 3.3头删数据 3.4尾插 3.5尾删 3.6链表销毁 3.7查找一个元素 3.8在pos之前插入 3.9在pos之后插入 3.10删除pos位置 3.11删除pos之后的位置 1.顺序表的问题 顺…

【Spring | 应用上下文】

应用上下文 应用上下文和资源路径构造应用上下文构造ClassPathXmlApplicationContext实例 — 快捷方式使用通配符蚂蚁式图案类路径&#xff1a;前缀 应用上下文和资源路径 本节介绍如何使用资源创建应用程序上下文&#xff0c;包括使用 XML 的快捷方式、如何使用通配符以及其…

搭建srt服务器

目录 1、下载和编译srt2、下载和编译srt-live-server3、编译工程,并把编程出来的可执行程序放到nfs4、板子上跑程序5、用ffplay从srt服务器上流6、srt中./configure遇到的问题解决方法1、下载源码2、下载好之后cp到ubuntu3、解压安装4、创建软链接:创建快捷名字tclsh,放到us…

信音电子在创业板IPO:募资约9亿元,预计上半年收入约4.3亿元

7月17日&#xff0c;信音电子&#xff08;中国&#xff09;股份有限公司&#xff08;下称“信音电子”&#xff0c;SZ:301329&#xff09;在深圳证券交易所创业板上市。本次上市&#xff0c;信音电子的发行价为21.00元/股&#xff0c;发行数量为为4300万股&#xff0c;募资总额…

vue 当新增样式无法生效的情况下如何处理

使用scoped属性时&#xff0c;会遇到样式问题。需要使用样式穿透解决 <style lang"scss" scoped> </style> 可以使用以下方法 &#xff1a;deep css 使用 >>> less 使用 /deep/ scss 使用 ::v-deep 代码写法如下: .a :deep(.b) { } .…