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 可以参考我之前的文章:地址 。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

黑马Java 集合(上)

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 知…

【爬虫、数据可视化实战】以“人口”话题为例爬取实时微博数据并进行舆情分析

前言: 近期在weibo上讨论的比较热的话题无非就是“人口”了。TaoTao也看了一些大家发的内容。但是感觉单纯的看文字内容不能很直观的反应出来大家的关切。索性就使用爬虫对数据进行爬取,同时结合着数据可视化的方式让数据自己开口说话。那么接下来就让我…

第08章_面向对象编程(高级)(static,单例设计模式,理解mian方法,代码块,final,抽象类与抽象方法,接口,内部类,枚举类,注解,包装类)

文章目录 第08章_面向对象编程(高级)本章专题与脉络1. 关键字:static1.1 类属性、类方法的设计思想1.2 static关键字1.3 静态变量1.3.1 语法格式1.3.2 静态变量的特点1.3.3 举例1.3.4 内存解析 1.4 静态方法1.4.1 语法格式1.4.2 静态方法的特点1.4.3 举例 1.5 练习 …

5大免费代理IP合集,你的代理IP该换啦!

一连代理 代理IP提供平台,代理IP覆盖HTTP/HTTPS/SOCKS5协议,涵盖直连和隧道代理。一键操作可以随机更换IP,实现高效稳定的网络代理。支持在PC、iOS和安卓等平台上使用。当前免费试用选项,让用户能够在使用之前先了解服务的性能和效…

常见PCB封装

表面贴片封装 通孔封装 公众号 | FunIO 微信搜一搜 “funio”,发现更多精彩内容。 个人博客 | blog.boringhex.top

uniapp开发小程序—scroll-view实现内容滚动时, 标题也滚动

一、需求 scroll-view实现内容滚动时&#xff0c; 标题也滚动 二、效果 三、代码实现 <template><view class"content"><view class"head">头部固定区域</view><view class"list_box"><!-- 菜单左边 -->&l…

Spring boot3.x 无法向 Nacos2.x进行服务注册的问题

一&#xff1a;问题描述 配置中心都是可用的&#xff0c;但是就是无法向nacos进行服务注册。 二&#xff1a;问题可能出现的原因有如下两种 1.Nacos2.0版本相比1.X新增了gRPC的通信方式&#xff0c;因此需要增加2个端口。除了8848还需要开放9848&#xff0c;9849端口。 官方…

基于springboot+vue的在线文档管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 背景和意…

深入理解多线程编程和 JVM 内存模型

目录 一、什么是多线程编程 二、JVM介绍 三、 JVM 内存模型 一、什么是多线程编程 多线程编程是一种编程方式&#xff0c;它允许程序在同一时间内执行多个线程或任务。线程是程序执行的最小单位&#xff0c;多线程编程可以将任务拆分为多个线程&#xff0c;每个线程独立执行…

vue全局公共样式

vue公共样式代码存放在/src/styles文件夹里 index里引入其他组件公共样式&#xff0c;index.scss文件内容如下&#xff1a; import ./sidebar.scss; import ./searchForm.scss;body {height: 100%;-moz-osx-font-smoothing: grayscale;-webkit-font-smoothing: antialiased;t…

网络通信(15)-C#TCP客户端掉线重连实例

本文上接前面的文章使用Socket在C#语言环境下完成TCP客户端的掉线重连实例。 掉线重连需要使用心跳包发送测试网络的状态,进而进入重连循环线程。 前面实例完成的功能: 客户端与服务器连接,实现实时刷新状态。 客户端接收服务器的数据。 客户端发送给服务器的数据。 客…

leetcode---Z字形变换

题目&#xff1a; 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a;之后&#xff0c;你的输出需要从左往右逐行读取&#xff0c;产生…

helm---自动化一键部署

什么是helm?? 在没有这个helm之前&#xff0c;deployment service ingress helm的作用就是通过打包的方式&#xff0c;把deployment service ingress 这些打包在一块&#xff0c;一键式部署服务&#xff0c;类似于yum 官方提供的一个类似于安装仓库的功能&#xff0c;可以实…

2-SAT问题相关理论和算法

前言 SAT 问题简介 SAT是可满足性、适定性(Satisfiability)问题的简称。一般形式为k-适定性问题或k-可满足性问题&#xff0c;简称 k-SAT。 何为布尔可满足性问题&#xff1f;给定一条真值表达式&#xff0c;包含逻辑变量、逻辑与、逻辑或以及非运算符&#xff0c;如&#x…

Linux配置yum源以及基本yum指令

文章目录 一、yum介绍二、什么是软件包三、配置yum源四、一键配置yum源【三步走】五、yum指令搜索软件安装软件卸载软件 六、其他yum指令更新内核更新软件更新指定软件显示所有可更新的软件清单卸载指定包并自动移除依赖包删除软件包&#xff0c;以及软件包数据和配置文件 一、…

2024年第3周农产品价格监测报告

一、摘要 农产品价格监测主要涉及对畜禽类产品、水产品、蔬菜类产品、水果类产品的价格&#xff0c;以周为单位&#xff0c;进行变化情况的数据监测。其中&#xff0c;蔬菜类产品共8种&#xff0c;分别为菜花、韭菜、豆角、西红柿、胡萝卜、土豆、大葱、葱头。 本周重点监测的…

【深度学习】BasicSR训练过程记录,如何使用BasicSR训练GAN

文章目录 两种灵活的使用场景项目结构概览简化的使用方式 项目结构解读1. 代码的入口和训练的准备工作2. data和model的创建2.1 dataloader创建2.2 model的创建 3. 训练过程 动态实例化的历史演进1. If-else判断2. 动态实例化3. REGISTER注册机制 REGISTER注册机制的实现1. DAT…

第1章-计算机网络基础

目录 1. 计算机网络与计算机 2. 计算机网络的定义和基本功能 2.1. 定义&#xff1a;计算机网络是一组自治计算机互连的集合 2.2. 基本功能 2.3. 计算机网络的演进 2.4. 广域网(Wide Area Network&#xff0c;WAN) 2.5. 网络的拓扑结构 2.6. 数据交换方式 2.7. 衡量计算…

ICC2:如何优化网表中的assign语法

更多学习内容请关注「拾陆楼」知识星球 拾陆楼知识星球入口 问题来自星球提问: ICC2中有两种解决方法: 1) set_app_options -name opt.port.eliminate_verilog_assign -value true 工具优化时自己插buffer解决 2) change_name -hier -rule verilog 需要注意的是: 第一个opti…

自己本机Video retalking制作数字人

首先需要注意的是&#xff0c;这个要求你的笔记本显存和内存都比较大。我的电脑内存是64G&#xff0c;显卡是8G&#xff0c;操作系统是Windows 11&#xff0c;勉强能够运行出来&#xff0c;但是效果不是很好。 效果如下&#xff0c;无法上传视频&#xff0c;只能通过图片展示出…