virtualenv虚拟环境的安装使用教程

让我们先思考这样一种情景:我们用python来开发一个项目,那么这个项目肯定会依赖很多的第三方库,这些第三方的库通过pip安装到全局区当中,而对于不同的项目使用到的库可能都有所不同,但是这些项目的库都安装到全局区当中,是不是非常不便于管理。

我们可不可以做到像java的project一样有自己的工程,让这个工程下的所有依赖库都装到自己工程的相应目录下呢?答案是可以,实现这个场景就需要用到我们今天所讲解的这个python虚拟环境工具virtualenv。其官网为:地址 ,感兴趣的朋友可以去了解一下。

目录

virtualenv安装与配置

virtualenv的基本使用

pip安装包

pycharm使用虚拟环境


virtualenv安装与配置

这里我拿window举例,cmd终端执行如下命令安装virtualenv工具:

pip install virtualenv

接下来需要安装虚拟环境管理包工具virtualenvwrapper-win,终端执行如下命令:

pip install virtualenvwrapper-win

出现如下界面说明我们安装成功:

安装完成之后,验证我们是否可以使用 virtualenv 工具,可以终端运行 virtualenv --help 查看一下

接下来我们需要配置一下virtualenv创建虚拟环境生成的根目录,修改其默认路径,如果不修改路径的话,当我们cmd终端创建virtualenv虚拟环境的时候默认是生成在C盘目录下的:

在我的电脑->右键->属性->高级系统设置->环境变量->系统变量 中添加一个参数,将这个参数的值设置为你需要的路径,之后创建的虚拟环境的文件都在这个家目录下,如下:(WORKON_HOME)

如果出现 ‘mkvirtualenv‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件,应该是配置环境变量出现了问题,需要在环境变量中加入python的安装目录下的的Scripts添加到环境变量中。

virtualenv的基本使用

接下来我们开始借助virtualenv虚拟环境创建工具进行一个简单的使用,如下:

创建虚拟环境:终端执行如下命令开始创建虚拟环境:

mkvirtualenv 虚拟环境名称

接下来我们终端执行了 mkvirtualenv test 出现了如下界面说明我们创建虚拟环境成功:

我们可以看到我们在环境配置步骤设置的环境存放路径是正确的:

当然我们创建虚拟环境时也可以指定python版本:

mkvirtualenv -p python解释器路径 虚拟环境名称
mkvirtualenv -p C:User/python.exe django_env# 也可以采用如下方式
mkvirtualenv --python==python解释器路径 虚拟环境名称

查看所有的虚拟环境:终端执行如下命令查看已创建的虚拟环境:

workon

切换虚拟环境目录: 终端执行如下命令切换到具体虚拟环境的目录:

workon 虚拟环境名称

退出虚拟环境终端执行如下命令退出虚拟环境:

deactivate

删除虚拟环境:终端执行如下命令删除虚拟环境(必须先退出虚拟环境内部才能删除当前虚拟环境)

rmvirtualenv 虚拟环境名称

进入到虚拟环境所在的目录:终端执行如下命令进入到相关目录:

cdvirtualenv 虚拟环境名称

pip安装包

虚拟环境安装的包与全局安装的包是相互独立分开的,接下来简单的介绍一下虚拟环境中的安包操作,如下:

查看全局或虚拟环境安装的包

pip list

如果想把全局安装的包下载到虚拟环境当中,可以采用如下操作的方式:

首先我们回到正常环境当中,收集当前环境安装的全局的包及其版本信息:

pip freeze > requirements.txt 

然后我们可以在我们c盘的目录下找到我们生成好的文件,里面有我们全局的包的信息及其对应的版本:

回到我们部署的虚拟环境当中执行如下安装命令,将txt所有的包信息安装到虚拟环境当中去:

pip install -r requirements.txt

pycharm使用虚拟环境

既然我们已经创建好了虚拟环境了,也知道怎么使用了,那么如何在编辑器中进行使用呢?如下我们开始讲解如何在pycharm开发者工具中使用我们的虚拟环境:

点击创建之后我们看看我们虚拟环境创建的py项目能不能运行,如下,没毛病:

接下来我们拿虚拟环境当中的安装包与原环境进行一个对比,看到虚拟环境的包更加透彻清晰是吧(啥也没有):

至此,我们对于 virtualenv 安装使用讲解完成,提一嘴:

pyenv-win 也提供了类似于 virtualenv 创建虚拟环境的功能。在 pyenv-win 中,这个功能被称为 Virtual Environments。

使用 pyenv-win 的 Virtual Environments 功能,你可以创建和管理独立的 Python 环境,这与 virtualenv 的功能非常相似。但是,与 virtualenv 不同的是,pyenv-win 的 Virtual Environments 是基于不同的 Python 版本创建的,而 virtualenv 则是基于同一 Python 版本的不同虚拟环境。

对于使用 pyenv-win 的开发人员来说,使用 Virtual Environments 来创建和管理 Python 环境可能更加方便,因为它们可以轻松地切换不同版本的 Python 解释器,并在其中创建多个独立的虚拟环境。但是,如果你想要与其他开发人员共享代码或使用一些第三方库,那么 virtualenv 可能是更好的选择。如果想学习 pyenv-win 可以参考我之前的文章:地址 。

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

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

相关文章

【JavaEE进阶】MyBatis⼊⻔

文章目录 🌲什么是MyBatis?🌳准备⼯作🚩创建⼯程🚩数据准备🚩配置数据库连接字符串🚩 在项⽬中,创建持久层接⼝UserInfoMapper 🍃单元测试🚩使⽤Idea⾃动⽣成测试类 🍀打…

6 时间序列(不同位置的装置如何建模): GRU+Embedding

很多算法比赛经常会遇到不同的物体产生同含义的时间序列信息,比如不同位置的时间序列信息,风力发电、充电桩用电。经常会遇到该如此场景,对所有数据做统一处理喂给模型,模型很难学到区分信息,因此设计如果对不同位置的…

芯课堂 | SWM34S系列驱动TFT-LCD显示模组应用基本注意事项

1、确认硬件的连接、包括电源、地、RGB 数据线、DCLK\DE\HSYNC\VSYNC 等,显示模组有 DISP、RESET、CS、SCL、SDA 等。 2、确认各电压的正常,包括电源,部分有 IOVCC、VGL、VGH、VCOM 等电压 3、如果应用的 TFT-LCD 模组非演示例程中已适配调…

动态血糖监测市场调研:预计2029年将达到13亿美元

血糖监测即是对于血糖值的定期检查。实施血糖监测可以更好的掌控糖尿病患者的血糖变化,对生活规律,活动,运动,饮食以及合理用药都具有重要的指导意义,并可以帮助患者随时发现问题,及时到医院就医。 动态血糖…

LinkedList源码

LinkedList源码 总结 LinkedList数据结构采用链表,内部封装了Node类,set方法先让Node的pre指针指向之前的last节点,然后判断头节点知否为空,如果为空则让first指针指向该节点,不过不为空则让尾节点的next指针指向该节…

Linux:动静态库的概念制作和底层工作原理

文章目录 动静态库基础认知动静态库基本概念静态库的制作库的概念包的概念 静态库的使用第三方库小结 动态库的制作动态库的使用动态库如何找到内容?小结 动态库加载库和程序都要加载可执行程序的地址问题地址问题逻辑地址和平坦模式绝对编址和相对编址与位置无关码…

vue2(Vuex)、vue3(Pinia)、react(Redux)状态管理

vue2状态管理Vuex Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它使用集中式存储管理应用的所有组件的状态,以及规则保证状态只能按照规定的方式进行修改。 State(状态):Vuex 使用单一状态树,即一个对象包含全部的应用层…

高防IP如何保护服务器

首先我们要知道什么是高防IP~ 高防IP是指高防机房所提供的ip段,主要是针对互联网服务器遭受大流量DDoS攻击时进行的保护服务。高防IP是目前最常用的一种防御DDoS攻击的手段,用户可以通过配置DDoS高防IP,将攻击流量引流到高防IP,防…

[pytorch入门] 3. torchvision中的transforms

torchvision中的transforms 是transforms.py工具箱,含有totensor、resize等工具 用于将特定格式的图片转换为想要的图片的结果,即用于图片变换 用法 在transforms中选择一个类创建对象,使用这个对象选择相应方法进行处理 能够选择的类 列…

网络安全全栈培训笔记(57-服务攻防-应用协议RsyncSSHRDPFTP漏洞批量扫描口令拆解)

第57天 服务攻防-应用协议&Rsync&SSH&RDP&FTP&漏洞批量扫描&口令拆解 知识点: 1、服务攻防-远程控制&文件传输等 2、远程控制-RDP&RDP&弱口令&漏洞 3、文件传输-FTP&Rsyc&弱口令&漏洞 章节内容: …

Python实现分段函数求导+绘制函数曲线

代码如下&#xff1a; import sympy as sp import numpy as np import matplotlib.pyplot as plt from sympy.utilities.lambdify import lambdify# 定义符号变量 x sp.symbols(x) # expr sp.Piecewise((0,0< x < 5), (1, x > 5)) # 定义分段原函数 #-------------…

manacher算法 求最长回文串

本题链接&#xff1a;用户登录 题目&#xff1a; 样例&#xff1a; 输入 aa1ABA1b 输出 5 思路&#xff1a; 根据题目意思&#xff0c;求出最长回文串&#xff0c;我们可以用模板 manacher 算法 求最长回文串。 manacher算法 求最长回文串 核心有两个步骤。 一、将字符串转化…

框架概述和MyBatis环境搭建

学习视频&#xff1a;1001 框架概述_哔哩哔哩_bilibili 目录 框架概述 1.1为什么要学 1.2框架的优点 1.3 当前主流框架 Spring框架 Spring MVC框架 MyBatis框架 ​编辑 Spring Boot框架 Spring Cloud框架 1.4 传统JDBC的劣势 MyBatis 2.1 MyBatis概述 ORM框架工作原…

分布式日志

1 日志管理 1.1 日志管理方案 服务器数量较少时 直接登录到目标服务器捞日志查看 → 通过 rsyslog 或shell/python 等脚本实现日志搜集并集中保存到统一的日志服务器 服务器数量较多时 ELK 大型的日志系统&#xff0c;实现日志收集、日志存储、日志检索和分析 容器环境 …

编程语言MoonBit新增矩阵函数的语法糖

MoonBit更新 1. 新增矩阵函数的语法糖 新增矩阵函数的语法糖&#xff0c;用于方便地定义局部函数和具有模式匹配的匿名函数&#xff1a; fn init {fn boolean_or { // 带有模式匹配的局部函数true, _ > true_, true > true_, _ > false}fn apply(f, x) {f(x)}le…

【分布式技术】注册中心zookeeper

目录 一、ZooKeeper是什么 二、ZooKeeper的工作机制 三、ZooKeeper特点 四、ZooKeeper数据结构 五、ZooKeeper应用场景 ●统一命名服务 ●统一配置管理 ●统一集群管理 ●服务器动态上下线 ●软负载均衡 六、ZooKeeper的选举机制 七、实操部署ZooKeeper集群 步骤一…

compose部署tomcat

1.部署tomcat 1.1.下载相关镜像tomcat8.5.20 $ docker pull tomcat:8.5.20 1.2 在/data目录下创建tomcat/webapps目录 mkdir -p /data/tomcat/webapps 注意&#xff1a;这里是准备将宿主机的/data/tomcat/webapps映射到容器的 /usr/…

HarmonyOS鸿蒙学习笔记(22)@Builder实战

Builder标签是一种更轻量的UI元素复用机制&#xff0c;下面通过一个简单的例子来具体说明&#xff1a; 比如如下布局效果&#xff1a;上面是一个轮播的Swiper,下面是一个Grid 布局代码如下&#xff1a; build() {Navigation() {Scroll() {Column({ space: CommonConstants.CO…

测试老司机聊聊测试设计都包含什么?

一、数据组合测试设计 数据组合测试设计&#xff08;Combinatorial Test Design&#xff0c;CTD&#xff09;是一种优化测试用例的方法&#xff0c;它通过系统地组合不同的测试数据输入&#xff0c;以确保全面覆盖各种可能的测试情况。这种方法主要应用于软件测试领域&#xff…

性能优化-HVX 开发环境介绍

「发表于知乎专栏《移动端算法优化》」 本篇以 HVX 的开发环境配置以及应用实例编译测试为主进行讲述。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础教程 &#x1f3…