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

news2024/10/7 6:41:12

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.coloradmin.cn/o/775235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLM 盛行,如何优雅地训练大模型?

作者 | 王嘉宁 整理 | NewBeeNLP https://wjn1996.blog.csdn.net/article/details/130764843 大家好,这里是 NewBeeNLP。 ChatGPT于2022年12月初发布,震惊轰动了全世界,发布后的这段时间里,一系列国内外的大模型训练开源项目接踵而…

手把手教你搭建SpringCloud项目(十)集成Hystrix之服务降级

什么是微服务?一看就会系列! 一、手把手教你搭建SpringCloud项目(一)图文详解,傻瓜式操作 二、手把手教你搭建SpringCloud项目(二)生产者与消费者 三、手把手教你搭建SpringCloud项目&#x…

公司老项目改造适配不同分辨率2k、3k、4k

项目改造适配不同分辨率 最近公司要做项目适配2k、3k、4k屏的分辨率,在网上找了很多中方案,常用且方便的是使用zoom全局缩放,因为是老项目所以对样式进行了重写整体使用了flex百分比布局 使用 1、在utils文件夹中新建一个zoom.js文件 这个是…

ACL 2023 | 持续进化中的语言基础模型

尽管如今的 AI 模型已经具备了理解自然语言的能力,但科研人员并没有停止对模型的不断改善和理论探索。自然语言处理(NLP)领域的技术始终在快速变化和发展当中,酝酿着新的潮流和突破。 NLP 领域的顶级学术会议国际计算语言学年会 …

java中的三大集合类各自的特点以及适用场景

目录 ​编辑 三大容器的介绍 使用场景介绍 List 实现类 Map 实现类 Set 实现类: 三大容器的介绍 List(列表) 结构:由有序的元素序列组成,可以包含重复元素特点:可以通过索引访问元素,插入的顺…

SQL注入实操(更新中)

文章目录 一、sqli-lab靶场搭建二、通关笔记1.Less-1a.单引号‘b.updatexmlc.concatd.unione.information_schemaf.GROUP_CONCATg.select 1,2 2.Less-23.Less-3a.怎么找到注入点b.判断SQL注入漏洞的类型c.闭合语句d.如何判断显示位e.答案 4.Less-45.Less-5a.判断注入漏洞的依据…

PhpStudy2016-2018-RCE 漏洞复现

漏洞描述 PHPStudyRCE(Remote Code Execution),也称为phpstudy_backdoor漏洞,是指PHPStudy软件中存在的一个远程代码执行漏洞。 漏洞影响范围 Phpstudy软件是国内的一款免费的PHP调试环境的程序集成包,通过集成Apac…

WEB:shrine

背景知识 了解Flask SSIT模板注入 题目 进行代码审计 import flask import osapp flask.Flask(__name__) /*创建了flask包下的Flask类的对象,name是一个适用于多数情况的快捷方式。有了这个参数,Flask才知道在哪里可以找到模板和静态文件*/app.confi…

HYPE分布式水文模型教程

详情点击链接:HYPE分布式水文模型建模方法与案例分析 前言 HYPE(Hydrological Predictions for the Environment, HYPE)是由瑞典皇家水文气象局(SMHI)在HBV和HBV-NP模型基础上开发的新一代分布式水文模型,已经在全球众多地区得…

同样是办公管理系统,钉钉和OA哪个更出色?

企业在选择办公协同系统的时候,通常搜索到“钉钉”和“OA系统”,两者都属于办公管理类型,但哪个更适合企业使用?两者又有哪些区别呢?小编整理了一下两者的对比和侧重的点,今天我们就来聊聊两者的区别吧~ 天…

【Linux】inode软硬连接

文章目录 📖 前言1. 文件系统1.1 磁盘的物理结构:1.2 CSH和LBA:1.3 IO的基本单位:1.4 文件系统结构:1.5 认识inode: 2. 软硬连接2.1 目录和文件的硬连接数:2.2 软连接:2.3 硬连接&am…

Clickhouse基础和基本优化

CK基础和基本优化 一、ClickHouse的特点列式存储高吞吐写入能力数据分区与线程级并行表引擎的使用MergeTreeReplacingMergeTreeSummingMergeTree 二、SQL操作1.Insert2.Update 和 Delete3.查询操作4.alter操作5.导出数据 三、基于表的分布式集群集群写入流程( 3分片…

react和vue2/3父子组件的双向绑定(sync、emit、v-model)

目录 Vue .sync(2.3.0) $emit (2.3后) 自定义组件的 v-model 2.2.0 v-modelemits(3.0取消了.sync) React 父组件回调函数 相关基础 框架 MVC (Model View Controller)/MVP(Model View…

VirtualBox 7.0.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件

VirtualBox 7.0.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件 Oracle VM VirtualBox 7 请访问原文链接:https://sysin.org/blog/virtualbox-7/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 2022 年 10 月…

CentOS7中安装Mysql8并配置远程连接和修改密码等

场景 使用Vmware等虚拟机软件搭建CentOS7系统,需要在其上安装Mysql8版本数据库。 注: 博客:霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主 实现 1、去mysql官网手动下载rpm包并上传到服务器,或者直接通过wget…

Python结合Selenium简单实现Web自动化测试

这篇文章是入门级别的应用Python Selenium进行自动化测试,包括环境搭建及简单的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 这篇文章是入门级别的应用Python Selenium进行自动化测试,包括环境搭建及简单的实例。基…

数据库及数据表的相关操作(一)

目录 一、管理逻辑库与数据表二、常用数据类型和约束2.1 数字数据类型2.2 字符串数据类型2.3 日期数据类型2.4 字段约束 三、索引运行机制和使用原则3.1 创建索引3.2 添加与删除索引3.3 索引的使用原则 一、管理逻辑库与数据表 sql语言的分类: ​ DML数据操作语言…

linux之Ubuntu系列(四)用户管理 用户和权限 chmod 超级用户root, R、W、X、T、S 软链接和硬链接 shell

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。 w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移…

linux之Ubuntu系列(-)常见指令 重定向

Ubuntu 中文 版本 注意点 通过修改语言改成英文 在终端录入:export LANGen_US 在终端录入:xdg-user-dirs-gtk-update 单用户和多用户 命令格式 command [-选项] [参数] –查看命令的帮助 命令 --help man 命令 |操作键| 功能| |空格键|-显示手册的下…

Kafka 入门到起飞系列 - 生产者发送消息流程解析

生产者通过producerRecord 对象封装消息主题、消息的value(内容)、timestamp(时间戳)等 生产者通过send()方法发送消息,send()方法会经过如下几步 1. 首先将消息交给拦截器(Interceptor)处理, 拦截器对生产者而言&…