【编程基础之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…...
云计算ACP云服务器ECS实例题库
😘作者简介:一名99年软件运维应届毕业生,正在自学云计算课程。👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。&…...
面试题:作用域、变量提升、块级作用域、函数作用域、暂存性死区、var和let的区别
<script>var a 10;(function () {console.log(a)a 5console.log(window.a)var a 20;console.log(a)})() </script> 上述代码: 1、主要是涉及到变量提升和函数作用域,var a20这行代码会在函数作用域中提升var a 至最顶部…...
JAVA练习49-爬楼梯
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目-爬楼梯 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 2月13日练习内容…...
深兰科技机器人商丘制造基地正式投产,助力商丘经济高质量发展
2月9日,深兰科技机器人商丘制造基地投产仪式在商丘市梁园区北航创新园隆重举行。商丘市人大常委会副主任、梁园区委书记张兵,梁园区区长薛天江、河南省装备制造业协会会长张桦,河南省机器人行业协会会长王济昌,深兰科技集团董事长…...
ES倒排索引/查询、写入流程
ES学习笔记 Elasticsearch学习笔记_巨輪的博客-CSDN博客 Elasticsearch学习之图解Elasticsearch中的_source、_all、store和index属性_BUse的博客-CSDN博客 倒排索引 倒排索引:ES倒排索引底层原理及FST算法的实现过程_es fst_Elastic开源社区的博客-CSDN博客 【…...
2023软考考哪个证书好?
软考有三个级别(初级,中级和高级),这三个级别分别对应5个方向,下面这张图片呢,可以一目了然,一些小小建议!!!遵循一个原则:首先选专业对口的科目&…...
一般人我劝你不要自学软件测试!!!
本人5年测试经验,在学测试之前对电脑的认知也就只限于上个网,玩个办公软件。这里不能跑题,我为啥说:自学软件测试,一般人我还是劝你算了吧?因为我就是那个一般人! 软件测试基础真的很简单&…...
docker/docker-compose 安装mysql5.7
目录使用docker安装mysql5.7docker普通安装docker生产环境安装使用docker-compose 安装注意注意一:docker-compose权限问题注意二:docker pull 找不到镜像使用docker安装mysql5.7 docker普通安装 docker pull mysql:5.7 # 启动容器 docker run -p 3306:3306 --name mysql -e …...
【C++设计模式】学习笔记(6):Bridge 桥模式
目录 简介动机(Motivation)模式定义结构(Structure)要点总结笔记结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金…...
Allegro如何批量快速修改复用好的模块操作指导
Allegro如何批量快速修改复用好的模块操作指导 在做PCB设计的时候,相同模块可以用reuse复用的功能,可以大大提升效率,但是模块需要修改的时候,其它模块也要跟着修改,逐个再去复用一遍比较费时间,Allegro支持批量快速修改复用好的模块 前提是相同模块必须是相同的mdd文件…...
wordpress把写博客按钮放在前台/国际军事新闻最新消息视频
《关于优化高职院校计算机一体化教学》本文是计算机一方面专科毕业论文范文跟优化和高职和院校和计算机和一体化和教学类论文范本.摘 要:随着计算机技术的不断发展,在我国各领域中,计算机技术得到了广泛的应用.在这种背景下,社会对计算机专业人才需求较多,这使得高职…...
比较好的外贸网站/aso搜索优化
描述 给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。 输入 输入可能有多组,以EOF结束。 每组输入包含两个字符串,分别为树的前序遍历和中序遍历。每个字符串中只包含大写字母且互不重复。 输出 对于每组输入,用一…...
wordpress项目需求/南京seo排名公司
知己知彼百战不殆 无论你要学习技能,你首先要知道这个技能应该学习哪些内容,把这些内容都学会是否能找到一份工作,这是在开始的时候必须了解的,如果连学习什么内容都不知道,就无从开始。所以首先了解2019年Java技术栈…...
2015手机版网站制作/注册网址
MS CRM4中,市场营销列表成员(其架构名称是listmember)是一个系统内部所使用的实体,没有被开放出来,在实体列表中是看不到该实体的。正好群里面有一个帖子,询问如何在营销列表中添加对联系人的“公司电话”的…...
海淀公司网站搭建/武汉整站优化
System.out.println(" 我可能用了假的trim ".trim()); 结果是,trim用了跟没用一样。难道是我眼花了,看到了假的空格?还是我用了假的trim? 然后看了下jdk源码,发现我用的是真的trim!&am…...
山东网站建设电话/做推广哪个平台好
其实之前有对function函数做过一些说明。http://blog.csdn.net/u013115157/article/details/52025633但只是简单的应用,和一些基本语法,在这一章节中,我将function函数的官方说明做一简单的阐述function(函数)函数是在你的规则源文件中放置语…...