【编程基础之Python】3、创建Python虚拟环境
【编程基础之Python】3、创建Python虚拟环境
- 创建Python虚拟环境
- 为什么需要虚拟环境
- Windows上的Anaconda创建虚拟环境
- conda 命令
- conda env 命令
- 创建虚拟环境
- 切换虚拟环境
- 验证虚拟环境
- Linux上的Anaconda创建虚拟环境
- 创建虚拟环境
- 切换虚拟环境
- 验证虚拟环境
- 总结
创建Python虚拟环境
为什么需要虚拟环境
根据实际开发需求,我们会不断的更新或卸载项目中依赖的Python类库,直接对我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,并且当我们同时开发多个项目的时候,可能每个项目依赖的同一个Python库的版本还不一样,就会造成版本冲突,管理相当混乱。而虚拟环境独立于真实环境存在,并且可以同时拥有多个虚拟环境,每个虚拟环境都可以安装不同的类库、不同版本的类库,对项目的依赖和版本的控制有着非常重要的作用。
Windows上的Anaconda创建虚拟环境
通过Windows的开始菜单,打开Anaconda Prompt(anaconda3)。可以看到命令提示符前面的(base)符号,说明当前是Anaconda的base虚拟环境。

通过命令:
conda env list
可以列出当前系统中拥有的虚拟环境。从响应结果知道,当前只有一个base环境,其目录就是anaconda的安装目录。

conda 命令
Anaconda提供的conda是一个用来管理和部署应用、环境和包的工具,通过输入conda直接回车可以打印出所有可用的命令以及说明信息。
(base) C:\Users\wux_labs>conda
usage: conda-script.py [-h] [-V] command ...conda is a tool for managing and deploying applications, environments and packages.Options:positional arguments:commandclean Remove unused packages and caches.compare Compare packages between conda environments.config Modify configuration values in .condarc. This is modeled after the git config command. Writes to the user .condarc file (C:\Users\wux_labs\.condarc) by default. Use the --show-sources flag to display all identified configuration locations on your computer.create Create a new conda environment from a list of specified packages.info Display information about current conda install.init Initialize conda for shell interaction.install Installs a list of packages into a specified conda environment.list List installed packages in a conda environment.package Low-level conda package utility. (EXPERIMENTAL)remove Remove a list of packages from a specified conda environment.rename Renames an existing environment.run Run an executable in a conda environment.search Search for packages and display associated information.The input is a MatchSpec, a query language for conda packages. See examples below.uninstall Alias for conda remove.update Updates conda packages to the latest compatible version.upgrade Alias for conda update.notices Retrieves latest channel notifications.optional arguments:-h, --help Show this help message and exit.-V, --version Show the conda version number and exit.conda commands available from other packages:buildcontent-trustconvertdebugdevelopenvindexinspectmetapackagepackrenderreposerverskeletontokenverify(base) C:\Users\wux_labs>
常用的命令有:
- clean,清理不需要使用的包和缓存
- compare,比较两个虚拟环境的包信息
- config,用来配置Anaconda的配置信息,默认配置在文件
.condarc中。 修改后的配置在用户目录下的.condarc文件中,比如C:\Users\wux_labs\.condarc - create,基于一些特定的包创建一个虚拟环境
- info,显示当前Anaconda的安装信息
- init,初始化Anaconda的Shell配置
- install,在指定的虚拟环境中安装一些包
- list,列出虚拟环境中已经安装了的包
- remove,从一个虚拟环境中移除一些包
- rename,重命名一个已存在的虚拟环境
- run,在一个虚拟环境中运行可执行程序
- search,搜索包并显示相关信息
- uninstall ,
conda remove的一个别名,从一个虚拟环境中移除一些包 - update,将Anaconda的包更新到兼容的最新版本
- upgrade,
conda update的别名
同时,从其他包中还提供了一些其他的命令。
conda env 命令
用来管理系统中的虚拟环境。
conda env 命令的使用方法为:
usage: conda-env-script.py [-h] {create,export,list,remove,update,config} ...positional arguments:{create,export,list,remove,update,config}create Create an environment based on an environment definition file. If using an environment.yml file (the default), you can name the environment in the first line of the file with 'name:envname' or you can specify the environment name in the CLI command using the -n/--name argument. The name specified in the CLI will override the name specified in the environment.yml file. Unless you are in the directory containing the environment definition file, use -f to specify the file path of the environment definition file you want to use.export Export a given environmentlist List the Conda environmentsremove Remove an environmentupdate Update the current environment based on environment fileconfig Configure a conda environmentoptional arguments:-h, --help Show this help message and exit.
常用的有:
- create 创建虚拟环境
- list 列出已有的虚拟环境
- remove 移出虚拟环境
要创建一个新的虚拟环境,可以直接通过命令进行创建:
conda create --name env_name python=x.x
--name可简写为-n即:
conda create -n env_name python=x.x
创建虚拟环境
通过命令创建一个虚拟环境。
conda create -n PythonBasic python=3.9

输入y确认需要安装的包,继续完成虚拟环境的创建。

虚拟环境创建完成后,再次通过命令查看当前系统中的虚拟环境信息,*表示当前激活的虚拟环境,当前是base环境。

切换虚拟环境
虚拟环境创建完成后,可以通过以下命令激活虚拟环境:
conda activate PythonBasic
虚拟环境激活以后,命令提示符前面的环境符号会变成PythonBasic。

并且通过命令可以看到当前激活的是PythonBasic环境。

如果要退出当前虚拟环境,可以使用命令:
conda deactivate
验证虚拟环境
通过命令conda list或者pip list可以查看当前虚拟环境中安装好的包。

两者的区别在于:
- conda list,会列出当前虚拟环境中安装的包,以及关联虚拟环境中安装的包
- pip list,仅会列出当前虚拟环境中安装的包
使用python命令进入Python解释器环境,编写代码执行验证。
print("Hello Python Basic")

Linux上的Anaconda创建虚拟环境
创建虚拟环境
在Linux系统上创建虚拟环境的命令与Windows系统上的命令一致。
conda create -n PythonBasic python=3.9
创建过程为:
(base) wux_labs@wux-labs-vm:~$ conda create -n PythonBasic python=3.9
Collecting package metadata (current_repodata.json): done
Solving environment: done==> WARNING: A newer version of conda exists. <==current version: 22.9.0latest version: 23.1.0Please update conda by running$ conda update -n base -c defaults conda## Package Plan ##environment location: /home/wux_labs/anaconda3/envs/PythonBasicadded / updated specs:- python=3.9The following packages will be downloaded:package | build---------------------------|-----------------ca-certificates-2023.01.10 | h06a4308_0 120 KBcertifi-2022.12.7 | py39h06a4308_0 150 KBlibffi-3.4.2 | h6a678d5_6 136 KBncurses-6.4 | h6a678d5_0 914 KBopenssl-1.1.1s | h7f8727e_0 3.6 MBpip-22.3.1 | py39h06a4308_0 2.7 MBpython-3.9.16 | h7a1cb2a_0 25.0 MBreadline-8.2 | h5eee18b_0 357 KBsetuptools-65.6.3 | py39h06a4308_0 1.1 MBsqlite-3.40.1 | h5082296_0 1.2 MBtzdata-2022g | h04d1e81_0 114 KBxz-5.2.10 | h5eee18b_1 429 KBzlib-1.2.13 | h5eee18b_0 103 KB------------------------------------------------------------Total: 35.9 MBThe following NEW packages will be INSTALLED:_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main None_openmp_mutex pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu Noneca-certificates pkgs/main/linux-64::ca-certificates-2023.01.10-h06a4308_0 Nonecertifi pkgs/main/linux-64::certifi-2022.12.7-py39h06a4308_0 Noneld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 Nonelibffi pkgs/main/linux-64::libffi-3.4.2-h6a678d5_6 Nonelibgcc-ng pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 Nonelibgomp pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 Nonelibstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 Nonencurses pkgs/main/linux-64::ncurses-6.4-h6a678d5_0 Noneopenssl pkgs/main/linux-64::openssl-1.1.1s-h7f8727e_0 Nonepip pkgs/main/linux-64::pip-22.3.1-py39h06a4308_0 Nonepython pkgs/main/linux-64::python-3.9.16-h7a1cb2a_0 Nonereadline pkgs/main/linux-64::readline-8.2-h5eee18b_0 Nonesetuptools pkgs/main/linux-64::setuptools-65.6.3-py39h06a4308_0 Nonesqlite pkgs/main/linux-64::sqlite-3.40.1-h5082296_0 Nonetk pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0 Nonetzdata pkgs/main/noarch::tzdata-2022g-h04d1e81_0 Nonewheel pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0 Nonexz pkgs/main/linux-64::xz-5.2.10-h5eee18b_1 Nonezlib pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0 NoneProceed ([y]/n)? yDownloading and Extracting Packages
tzdata-2022g | 114 KB | ########################################################################################################### | 100%
readline-8.2 | 357 KB | ########################################################################################################### | 100%
pip-22.3.1 | 2.7 MB | ########################################################################################################### | 100%
python-3.9.16 | 25.0 MB | ########################################################################################################### | 100%
xz-5.2.10 | 429 KB | ########################################################################################################### | 100%
sqlite-3.40.1 | 1.2 MB | ########################################################################################################### | 100%
ncurses-6.4 | 914 KB | ########################################################################################################### | 100%
openssl-1.1.1s | 3.6 MB | ########################################################################################################### | 100%
libffi-3.4.2 | 136 KB | ########################################################################################################### | 100%
setuptools-65.6.3 | 1.1 MB | ########################################################################################################### | 100%
ca-certificates-2023 | 120 KB | ########################################################################################################### | 100%
zlib-1.2.13 | 103 KB | ########################################################################################################### | 100%
certifi-2022.12.7 | 150 KB | ########################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate PythonBasic
#
# To deactivate an active environment, use
#
# $ conda deactivateRetrieving notices: ...working... done
(base) wux_labs@wux-labs-vm:~$
创建完成后,通过命令可以查看当前虚拟环境列表。

切换虚拟环境
使用命令切换虚拟环境。
conda activate PythonBasic

验证虚拟环境
首先还是看看当前虚拟环境中安装的包。
conda list
pip list
由于操作系统不一样,在Linux系统上预安装的包与Windows操作系统上的包会有一些差异。

然后进入Python解释器环境,编写代码验证一下。
print("Hello Python Basic")

总结
Python的虚拟环境可以起到环境隔离的作用,当我们同时开发多个项目、需要使用同一个依赖库的不同版本时,虚拟环境非常有用。创建好虚拟环境后,就可以安装自己需要的包,开发项目了。
相关文章:
【编程基础之Python】3、创建Python虚拟环境
【编程基础之Python】3、创建Python虚拟环境创建Python虚拟环境为什么需要虚拟环境Windows上的Anaconda创建虚拟环境conda 命令conda env 命令创建虚拟环境切换虚拟环境验证虚拟环境Linux上的Anaconda创建虚拟环境创建虚拟环境切换虚拟环境验证虚拟环境总结创建Python虚拟环境 …...
kettle开发-Day36-循环驱动作业
前言:在日常数据处理时,我们通过变量传参来完成某个日期的数据转换。但可能因程序或者网络原因导致某个时间段的数据抽取失败。常见导致kettle作业失败的原因大概分为三大类,数据源异常、数据库异常、程序异常。因此面对这些异常时࿰…...
2023秋招 新凯来 算法工程师 面经分享
本专栏分享 计算机小伙伴秋招春招找工作的面试经验和面试的详情知识点 专栏首页:秋招算法类面经分享 主要分享计算机算法类在面试互联网公司时候一些真实的经验 一面 技术面 30分钟左右 1.主要是问项目和论文上的东西,问的不深,中间还介绍他们是做缺陷检测的,大概问了16分钟…...
Web3CN|Damus刷频背后,大众在期待什么样的去中心化社交?
刚过去的一周,许多人的朋友圈包括Twitter、Faceboo在内都在被一串公钥字母刷屏,其重要起因就是 Twitter 前首席执行官 Jack Dorsey 发推称,(2月1日)基于去中心化社交协议 Nostr 的社交产品 Damus 和 Amethyst 已分别在…...
Jenkins自动发布到WindowsServer,在WindowsServer执行的命令
echo off set apppoolname"6.usegitee" set websitename"6.usegitee" set webfolder"usegitee" echo 停止站点的应用程序池 C:\Windows\System32\inetsrv\appcmd.exe stop apppool %apppoolname% echo 停止站点 c:\Windows\System32\inetsrv\a…...
【Git学习】Git如何Clone带有Submodule的仓库?
文章目录一、问题描述二、解决问题三、参考链接四、解决问题4.1 下载主模块4.2 查看主模块的配置4.2 子模块的添加4.3 查看子模块的配置4.4 查看子模块的检出状态4.5 检出submodule4.6 再次查看.git/config4.7 重新打开Android Studio运行代码一、问题描述 在GitHub上下载了一…...
C语言进阶——通讯录模拟实现
🌇个人主页:_麦麦_ 📚今日名言:只有走在路上,才能摆脱局限,摆脱执着,让所有的选择,探寻,猜测,想象都生机勃勃。——余秋雨《文化苦旅》 目录 一、前言 二、正…...
【C#基础】C# 变量和常量的使用
序号系列文章1【C#基础】C# 程序通用结构总结2【C#基础】C# 程序基础语法解析3【C#基础】C# 数据类型总结文章目录前言一. 变量(variable)1,变量定义及初始化2,变量的类别3,接收输出变量二. 常量(constant&…...
nvm安装后出现‘node‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
出现这个问题多半是path地址不对。 打开系统环境变量。看看path里面有没有?没有的话,加上就行! 我的报错原因就是因为path里没有自动加上nvm的相关路径。 注意项: 1,在安装nvm之前,提前要把本机以前安装…...
张驰咨询:关于六西格玛,有一些常见的疑惑!
很多想要学习六西格玛的学员,经常会有这些困惑: 以前没有接触过六西格玛,需要什么基础吗?自学还是培训?哪些行业会用到六西格玛呢?学习六西格玛对以后的工作有哪些帮助?如何选择六西格玛培…...
【Vercel】教你部署imsyy/home个人主页
本篇博客教你如何部署一个自己的个人主页 项目地址:https://github.com/imsyy/home 本文首发于 慕雪的寒舍 1.fork仓库vercel部署 首先我们点击fork,将仓库复刻到自己的账户 随后进入vercel,点击dashboard-add new-project 选择你复刻的仓库…...
GeekChallenge
2.GeekChallenge 1.web 1.朋友的学妹 url:http://49.234.224.119:7413/ 右键点击查看源码,找到flagU1lDe0YxQF80c19oNExwZnVsbGxsbGx9 然后base64解码得到SYC{F1_4s_h4Lpfullllll} 2.EZwww url:http://47.100.46.169:3901/ 根据网站提示…...
Java文件IO
文章目录Java中的文件操作File常用构造方法方法文件内容的读写——数据流InputStreamFileInputStream利用Scanner进行字符读取OutputStreamPrintWriter按字符读取文件(FileReader)练习代码实例如何按字节进行数据读如何按字节进行数据写如何按字符进行数据读如何按字符进行数据…...
useSSL使用安全套接字协议(史上最全最详细)
useSSL使用安全套接字协议(史上最全最详细) SSL即为:Secure Sockets Layer 安全套接字协议。 useSSLfalse和useSSLtrue的区别: 在MySQL进行连接时: 如果MySQL的版本是5.7之后的版本必须要加上useSSLfalse,…...
面向对象复习(2)
面向对象(2) 对象与引用 java语言中除基本类型之外的变量都称之为引用类型 java中的对象时通过引用对其操作的 Car bm new Car(); 右边的new Car是以Car类为模板,调用无参构造函数,在堆空间中创建一个Car对象 左边的Car bm 在栈中创建了一个Car类型的引用变量,所谓Car的…...
python中使用numpy包的向量矩阵相乘
一直对np的线性运算不太清晰,正好上课讲到了,做一个笔记整个理解一下 1.向量和矩阵 在numpy中,一重方括号表示的是向量vector,vector没有行列的概念。二重方括号表示矩阵matrix,有行列。 代码显示如下: …...
ElasticSearch 学习(一)
目录一、Elasticsearch 简介二、Elasticsearch 发展史三、Elasticsearch 功能四、Elasticsearch 特点五、Elasticsearch 应用场景一、Elasticsearch 简介 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据…...
【新】华为OD机试 - 交换字符(Python)| 刷完获取OD招聘渠道
交换字符 题目 给定一个字符串 S 变化规则: 交换字符串中任意两个不同位置的字符 M S 都是小写字符组成 1 <= S.length <= 1000 输入 一串小写字母组成的字符串 输出 按照要求变换得到最小字符串 示例一 输入 abcdef输出 abcdef示例二 输入 bcdefa输出 acde…...
手把手教你解决传说中的NPE空指针异常
1. 前言最近有好几个初学java的小伙伴,甚至是学习到了JavaWeb、框架阶段的小伙伴也跑来问壹哥,该如何解决Java中的NullPointerException空指针异常。因为NPE是初学者特别常见的典型异常,所以壹哥在这里专门写一篇文章,来手把手地教…...
【pytorch安装】conda安装pytorch无法安装cpu版本(完整解决过程)
问题描述 在安装pytorch过程中,发现最后验证torch时总是返回结果为False,结果翻上去发现自己安装的是cpu版本的。 然后又通过conda去更换不同版本尝试,发现都是cpu版本的。 问题分析 通过conda安装pytorch是从源中搜索匹配指令中的文件&am…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
