学习使用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将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J