开发环境虚拟环境学习记录

news2024/11/25 20:38:25

1、VS Code搭建python环境

下载好Visual Studio Code后,首先需要进入Visual Studio Code并安装支持python开发的插件:

2、虚拟环境

2.1、初识虚拟环境

概述:①、在使用Python语言的时候我们使用pip来安装第三方包,但是由于pip的特性,系统中只能安装每个包的一个版本。但是在实际项目开发中,不同项目可能需要第三方包的不同版本,Python的解决方案就是虚拟环境。

②、虚拟环境就是虚拟出来的一个隔离的Python环境,每个项目都可以有自己的虚拟环境,用pip安装各自的第三方包,不同项目之间也不会存在冲突。

在命令提示符中通过如下命令安装虚拟环境:

# 下面两种方式任选其一即可
pip install virtualenv
# 安装过程中,如果报错,可以尝试切换源重新下载
pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.2、操作虚拟环境

2.2.1、创建虚拟环境

# 通过如下命令查看自己的virtualenv的版本
virtualenv --version

# 注意如下区别:
virtualenv --no-site-packages [虚拟环境名称]     ---- 版本在 20 之前
virtualenv  [虚拟环境名称]                       ---- 版本在 20 之后

2.2.2、切换虚拟环境

# 该操作要分两步执行
cd 指定虚拟环境的目录\Scripts
activate

2.2.3、退出虚拟环境

# 该操作要分两部执行
cd 指定虚拟环境的目录\Scripts
deactivate

提示:直接关闭命令提示符的效果是一样的。

2.2.4、删除虚拟环境

概述:要删除一个虚拟环境,只需删除虚拟环境的文件夹即可。

2.3、虚拟环境实操

需求1:首先,我们在D盘新建了一个名为python_test_file的目录,我们想在该目录创建一个名为testEV1和testEV2的虚拟环境(以下操作在命令提示符进行):

# 切换到指定目录
D:
cd python_test_file
# 创建虚拟环境
Virtualenv testEV1
Virtualenv testEV2

此时,我们打开D:\python_test_file目录可以发现目录下新建了一个名为testEV1和一个名为testEV2的目录:

目录结构如下:

Lib目录用于存储下载的第三方包(这就是为什么不同的虚拟环境之间不会互相影响的原因,因为不同的虚拟环境会加载它们各自的Lib目录中的第三方包)。

Scripts目录存放了激活虚拟环境,退出虚拟环境,python解释器等重要文件,因此,如果要切换到不同的虚拟环境就是进入不同虚拟环境的Scripts目录下的activate。

需求2:尝试切换到testEV2的虚拟环境并查看其模块库。

# 切换目录
d:
# 进入testEV2虚拟环境目录
cd python_test_file\testEV2\Scripts
# 通过activate激活虚拟目录
activate
# 展示虚拟环境中的模块库
pip list

展示虚拟环境testEV2中的模块库。

需求3:从testEV2的虚拟环境中切换到testEV1的虚拟环境,并通过pip命令获取pymysql的第三方库。

# 返回到python_test_file目录下
cd ..\..

# 进入到testEV1目录下的Scripts目录
cd testEV1\Scripts

# 激活testEV1的虚拟环境
activate

# 通过pip命令安装pymysql的第三方库
pip install pymysql

# 通过如下命令可以查看我们通过pip下载的第三方库
pip list

提示:①、如果需要退出虚拟环境,直接关闭命令提示符即可。

②、如果需要删除虚拟环境,直接删除对应的目录即可。

2.4、VScode使用虚拟环境

概述:VSCode默认是可以识别Python的虚拟环境的,若是不能识别可以下方式让VSCode识别:

①、打开VSCode设置;

②、筛选python venv path;

③、输入虚拟环境的地址(输入完后回车即可);

④、重启VSCode。

重启完成后,接下来尝试切换解释器:在vscode中新建任意.py文件,然后按下图所示步骤选择自己需要的虚拟环境中的解释器。

2.5、pycharm使用虚拟环境

2.5.1、创建项目时创建虚拟环境

首先创建一个新的项目:

接下来选择虚拟环境的位置和对应的解释器:

2.5.2、使用已经创建好的虚拟环境

首先打开如下路径:File | Settings | Project: python | Python Interpreter

如果需要添加解释器就点击Add Interpreter => Add Local Interpreter...

然后选择新建一个虚拟环境或选择一个已经建好的虚拟环境:

2.6、虚拟环境管理工具

概述:鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper,virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。它把你所有的虚拟环境都放在一个地方。

安装

# Linux、Unix、MacOS:
pip install virtualenvwrapper
# Windows: 
pip install virtualenvwrapper-win

注意:默认虚拟环境会安装到用户的家目录。通过设置WORKON_HOME到环境变量中就可以将虚拟环境安装到指定目录。

打开如下路径:右键此电脑 | 高级系统设置 | 环境变量 | 新建(用户变量) ,变量名为WORKON_HOME,变量值为要指定的目录(绝对路径)。

注意:由于virtualenvwrapper是虚拟环境管理工具,所以不需要像之前使用虚拟环境一样那样繁琐(需要到指定的路径去创建、激活虚拟环境),virtualenvwrapper支持在任意位置操作虚拟环境。

创建虚拟环境

mkvirtualenv 虚拟环境名

激活虚拟环境

workon 虚拟环境名

退出虚拟环境

deactivate

删除虚拟环境

rmvirtualenv 虚拟环境名

实操:操作上面提到的virtualenvwrapper操作。

# 创建一个名为test_env1的虚拟环境
mkvirtualenv test_env1

# 在任意位置执行都生效
workon test_env1

# 删除虚拟环境
rmvirtualenv test_env1

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

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

相关文章

Leetcode—138. 随机链表的复制【中等】

2024每日刷题(129) Leetcode—138. 随机链表的复制 实现代码 /* // Definition for a Node. class Node { public:int val;Node* next;Node* random;Node(int _val) {val _val;next NULL;random NULL;} }; */class Solution { public:Node* copyRan…

Linux动态库与静态库解析

文章目录 一、引言二、C/C源文件的编译过程三、静态库1、静态库的定义和原理2、静态库的优缺点3、静态库的创建和使用a、创建静态库b、使用静态库 四、动态库1、动态库的定义和原理2、动态库的优缺点3、动态库的创建和使用示例a、创建动态库b、使用动态库 五、动静态库的比较 一…

【Python小技巧】matplotlib不显示图像竟是numpy惹的祸

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、问题:df.plot() 显示不出图像二、尝试各种解决办法1. 增加matplotlib.use,设定GUI2. 升级matplotlib版本 三、numpy是个重要的库1. …

详解MySQL常用的数据类型

前言 MySQL是一个流行的关系型数据库管理系统,它支持多种数据类型,以满足不同数据处理和存储的需求。理解并正确使用这些数据类型对于提高数据库性能、确保数据完整性和准确性至关重要。本文将详细介绍MySQL中的数据类型,包括数值类型、字符…

算法分析 KMP算法中next值的计算、0/1背包问题

5.6.1 KMP算法中next值的计算 设模式的长度为m。用蛮力法求解 KMP算法中的 next值时&#xff0c;next[0]可直接给出&#xff0c;计算next[j](1<j<m-1)则需要在 T[0] …T[j-1]中分别取长度为j-1、..、2、1的真前缀和真后缀并比较是否相等&#xff0c;最坏情况下的时间代价…

2024------MySQL数据库基础知识点总结

-- 最好的选择不是最明智的&#xff0c;而是最勇敢的&#xff0c;最能体现我们真实意愿的选择。 MySQL数据库基础知识点总结 一、概念 数据库&#xff1a;DataBase&#xff0c;简称DB。按照一定格式存储数据的一些文件的组合顾名思义: 存储数据的仓库&#xff0c;实际上就是一…

Java初识继承

继承 文章目录 继承为什么需要继承继承中变量的访问特点继承中方法的访问特点继承的优缺点 概念:在Java中&#xff0c;继承是面向对象编程的一个基本特性。它允许我们定义一个新类&#xff0c;它从另一个已经存在的类继承其属性和方法。被继承的类称为父类或超类&#xff0c;新…

Linux进程——Linux进程与进程优先级

前言&#xff1a;在上一篇了解完一部分常见的进程状态后&#xff0c;我们先来把剩下的进程状态了解一下&#xff0c;再来进入进程优先级的学习&#xff01; 如果对前面Linux进程不太熟悉可以先阅读&#xff1a; Linux进程 本篇主要内容&#xff1a; 僵尸进程和孤儿进程 Linux进…

63-HDMI转VGA电路设计

视频链接 HDMI转VGA电路设计01_哔哩哔哩_bilibili HDMI转VGA电路设计 HDMI电路设计&#xff08;参考第13课&#xff09; VGA电路设计&#xff08;参考第15课&#xff09; DP转VGA电路设计&#xff08;参考第75课&#xff09; 1、HDMI转VGA转换器 2、HDMI转VGA简介 1、解…

融知财经:期货风险有多大,期货风险进行控制的方法

期货价格变化远大于股票市场&#xff0c;其风险也大于股票市场&#xff0c;当然其预期收益机会相对较高&#xff0c;因此期货更适合激进型投资者。在期货投资市场中&#xff0c;除了市场外的常见风险外&#xff0c;转型期投资者的投机心理和杠杆效应会增加期货的交易风险&#…

获取波形极值与间距并显示

获取并显示波形的极值与极值间距 1、流程 1、通过signal.find_peaks获取极大值 2、获取极大值下标 3、获取极大值对应的值 4、获取极大值的下标间距(就是隔多远有一个极大值) 5、获取极大值间距的标准差、方差、均值、最大值 6、图形展示波形图并标记极大值2、效果图 3、示…

铜价飙升,慧能泰HUSB332F带你狂飙

铜价&#xff0c;近期涨的很飘&#xff0c;涨到怀疑人生。继黄金后&#xff0c;铜成了另一个疯涨的明星&#xff01;作为电线电缆生产不可或缺的原材料&#xff0c;铜的身价暴涨直接拉响了成本警报&#xff0c;压缩了企业的利润空间。众多电线电缆制造商面临着严峻的挑战与考验…

嵌入式学习<1>:建立工程、GPIO

嵌入式学习_part1 本部分笔记用于学习记录&#xff0c;笔记源头 >>b站江科大_STM32入门教程 建立工程、GPIO 开发环境&#xff1a;keil MDK、STM32F103C8T6 1 &#xff09;建立工程 &#xff08;1&#xff09;基于寄存器开发、基于标准库 或者 基于HAL库开发; &…

【Python】字典题

题目&#xff1a;输入一段文本&#xff0c;统计每个字符的个数 in_inputinput(“输入&#xff1a;”) dic{} for char in in_input: if char in dic: dic[char]1 # 字典添加键值对的方法&#xff0c;给字典给键和值的方法 else: dic[char]1 print(dic) for key,value in dic.i…

Elastic 通过 AI 驱动的安全分析改变 SIEM 游戏

作者&#xff1a;Santosh Krishnan, Jennifer Ellard 借助由搜索 AI 提供支持的新攻击发现功能&#xff0c;优先考虑攻击&#xff0c;而不是警报。 传统的安全信息与事件管理系统&#xff08;SIEM&#xff09;在很大程度上依赖屏幕背后的人类才能取得成功。警报、仪表盘、威胁…

DCEP数字人民币:中国法定区块链中数字货币

一、背景 作为全球第二大经济体&#xff0c;中国在数字货币领域的发展一直备受关注。近年来&#xff0c;中国政府积极推动数字货币的研究和试点工作&#xff0c;逐步开放数字货币交易试点&#xff0c;并计划推出中国唯一合法数字货币——数字人民币&#xff08;RMB Coin&#…

tcping的安装,ping和tcping的区别

ping和tcping的区别 功能不同&#xff1a; Ping&#xff1a;Ping是一种基于ICMP协议的网络工具&#xff0c;用于测试主机之间的连通性。它发送ICMP回显请求&#xff08;Echo Request&#xff09;到目标主机&#xff0c;并等待目标主机返回ICMP回显应答&#xff08;Echo Reply…

【Unity】使用Resources.LoadAll读取文件的顺序问题

最近在做客户的一个项目&#xff0c;其中的一个模块使用到了照片&#xff0c;但是发现了一个很严重的问题。当你在使用Unity的时候&#xff0c;它竟然不按照顺序读取&#xff1f;这个机器人是不是逻辑有问题&#xff1f;如下图&#xff1a; 名字脱敏了哈。。。 照片比较多&…

订单超时自动取消的实践方案

1、定时任务方案 方案流程&#xff1a; 每隔 30 秒查询数据库&#xff0c;取出最近的 N 条未支付的订单。 遍历查询出来的订单列表&#xff0c;判断当前时间减去订单的创建时间是否超过了支付超时时间&#xff0c;如果超时则对该订单执行取消操作。 定时任务方案工程实现相…

DAPP开发:揭秘DAPP软件开发的秘密

随着区块链技术的飞速发展&#xff0c;DAPP&#xff08;去中心化应用&#xff09;的开发逐渐成为了一个热门话题。在本文中&#xff0c;我们将探讨如何从零开始开发DAPP软件&#xff0c;并深入思考DAPP开发中的关键问题。 一、了解DAPP开发的基础知识 在开始开发DAPP之前&…