学习使用venv创建“python虚拟环境”

2024-06-22 23:52

本文主要是介绍学习使用venv创建“python虚拟环境”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

使用python开发会经常面临的问题是:你会需要不同版本的python,而且就算同一个版本的python,不同的项目有很大可能会需要不同版本的包。而 “Python虚拟环境” 就是为了解决这个问题的。

目标

结合官方文档,自己动手实践来学习使用 venv 创建python虚拟环境。

参考文档:
venv — Creation of virtual environments — Python 3.12.4 documentation
Install packages in a virtual environment using pip and venv - Python Packaging User Guide

venv官方文档介绍

venv官方文档 中对此的介绍是:

venv 支持创建轻量级的“虚拟环境”,每个虚拟环境将拥有独立的包,安装在其 site 目录。 虚拟环境是在当前存在的 Python 版本上创建的,这被称为虚拟环境的 “基础Python”。你还可以选择与基础环境中的包隔离开来(这样只有在虚拟环境中显式安装的包才是可用的)。

当在虚拟环境中时,常见安装工具如 pip 将把包安装到虚拟环境里(这并不需要显式地指明)。

除此之外,虚拟环境是:

  • 用来包含支持一个项目(库或应用程序)所需的特定 Python 解释器、库和二进制文件。 在默认情况下,它们将隔离于 “其他虚拟环境” 和 “操作系统” 中安装的 Python 解释器和库。
  • 包含在一个目录中,惯例上放在项目目录下的venv.venv文件夹,或是有许多虚拟环境的容器目录下,如 ~/.virtualenvs
  • 不应该被纳入 Git 等源代码管理系统。
  • 被视为是“可丢弃的” —— 应当能够简单地删除并从头开始重建。所以你不应在虚拟环境中放置任何项目代码。
  • 不被视为是可移动或可复制的 —— 你只能在目标位置重建相同的环境。

实践

0. 下载对应版本的python并安装

我这里需要3.6版本的python。平台是Windows。

打开python官方下载页面 https://www.python.org/downloads/windows/ 搜寻3.6版本的python。

3.6版本下还有多个微版本比如 3.6.15、3.6.13(关于版本号:根据官方文档所说,python版本号格式为 major.minor.micro)。

对我来说最方便的是“Windows平台安装包”。但是,并不是每个微版本都有这个安装包。我按时间搜索所有的3.6版本,发现3.6.8有我需要的安装包:
在这里插入图片描述
于是便选择此版本进行安装。
另外,我并没有选择将python加入PATH环境变量,毕竟我们现在考虑的是多版本的情况。
在这里插入图片描述
安装完成后,我的python.exe安装到了 C:\Users\yaksue\AppData\Local\Programs\Python\Python36\python.exe。

1. 创建虚拟环境

创建一个路径 G:\MyTest\test0622。这个test0622 空文件夹就作为我的项目。

而现在我将在我的项目中创建一个虚拟环境。使用命令是[python.exe路径] -m venv [项目路径]。我这里即是:
C:\Users\yaksue\AppData\Local\Programs\Python\Python36\python.exe -m venv G:\MyTest\test0622

(注意,按照官方文档的描述,惯例其实更应该放在项目文件夹下test0622\.venv,而非项目文件夹本身test0622。我这里做完测试才注意到,就不调整了)

在cmd中运行后,即创建了虚拟环境:
在这里插入图片描述
其中pyvenv.cfg文件中的home指向运行此命令的 Python 安装

home = C:\Users\yaksue\AppData\Local\Programs\Python\Python36
include-system-site-packages = false
version = 3.6.8

2. 激活虚拟环境

\Scripts路径下有个activate文件,运行它可以激活。比如我这里用于激活的命令就是:
G:\MyTest\test0622\Scripts\activate

可以看到,在进入虚拟环境之前,我是找不到python的:(因为我在PATH环境变量中没有python.exe的路径)
在这里插入图片描述

但当我输入激活的命令后:
在这里插入图片描述

在虚拟环境中就可以找到python:
在这里插入图片描述

3. 在虚拟环境中安装包

首先,激活虚拟环境(但是不运行python命令,否则会进入Python交互式环境)。
然后像之前一样运行 pip install即可,比如我这里想安装1.18.5版本的numpy,则运行:
pip install numpy==1.18.5
在这里插入图片描述
(我这里有个疑问,开始我没有指定版本,结果就如上图所示没找到,是否在虚拟环境中安装包必须指定版本吗?还是说是其他问题?)

安装完成后,可以看到 numpy 被安装到了虚拟环境的目录下:
在这里插入图片描述

4. 后续

后续只要在激活此虚拟环境的状态下,就可像往常一样,安装包和运行python脚本。

想要关闭此虚拟环境,可以运行deactivate命令。
(关闭cmd的窗口也会关闭此虚拟环境。如果再开一个新的cmd窗口,就要再激活一遍)

这篇关于学习使用venv创建“python虚拟环境”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085761

相关文章

浅析python如何去掉字符串中最后一个字符

《浅析python如何去掉字符串中最后一个字符》在Python中,字符串是不可变对象,因此无法直接修改原字符串,但可以通过生成新字符串的方式去掉最后一个字符,本文整理了三种高效方法,希望对大家有所帮助... 目录方法1:切片操作(最推荐)方法2:长度计算索引方法3:拼接剩余字符(不推荐,仅作演示)关键注意事

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Python自动化提取多个Word文档的文本

《Python自动化提取多个Word文档的文本》在日常工作和学习中,我们经常需要处理大量的Word文档,本文将深入探讨如何利用Python批量提取Word文档中的文本内容,帮助你解放生产力,感兴趣的小... 目录为什么需要批量提取Word文档文本批量提取Word文本的核心技术与工具安装 Spire.Doc

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req