【python基础】搭建python开发环境

0.相关确定

0.1确定操作系统

Python是一种跨平台的编程语言,这意味着它能够运行在所有主要的操作系统中。然而,在不同的操作系统(Windows/Mac/Linux)中,安装Python的方法存在细微的差别。本教程我们使用的是Windows系统,对于Mac和Linux暂时不做介绍

0.2确定Python版本

当前有两个不同的Python版本:Python2和Python3。官方通知从2020年开始Python2已不再维护,Python3的版本还在不断迭代更新,目前已经更新到了Python3.11版本,并且Python3并不兼容Python2,技术学新不学旧所以,本教程我们用的Python版本为Python3.11.2,后面的.2是指在大版本3.11的基础之上,再次进行版本迭代。

0.2.1下载Python3.11

官方下载地址:http://www.python.org/
百度网盘下载地址:http://pan.baidu.com/s/1dJ7XsWmq3FY_sJ-Wa3tvPg?pwd=1gw0 提取码:1gw0
下载完成后,如下图所示:
image

1.安装Python3.11

(1)双击操作系统位数所对应的安装包,勾选Add python.ext to PATH,点击Customize installation,如下所示
image
(2)点击Next,如下所示
image
(3)点击Browse,选择要将Python安装到的目录,点击Install,如下所示
image
(4)等待安装完成,安装完成如下所示
image
(5)点击Close关闭对话框,我们来测试下系统是否能够正常使用Python
按住键盘Shift键并右击桌面,点击在此处打开Powershell窗口,如下所示
image
(6)在弹出的命令行窗口中输入python,出现如下所示即为安装成功。
image

2.环境变量配置

为什么要配置环境变量?
Python的可执行文件经过安装肯定在硬盘中的某个路径下,然而这个路径是不在操作系统提供可执行文件的搜索路径中,因此我们通过配置环境变量中的Path路径,将Python的可执行文件的这个路径,加入到操作系统的可执行文件的搜索路径中。
1.右键点击“计算机”,点击”属性“,点击”高级“,最终找到的对话框如下所示
image
2.点击环境变量,点击系统变量中的Path,如下所示
image
3.点击新建,输入Python的安装目录路径,点击确定,即可完成环境变量的配置,如下所示
image

本文转载于网络 如有侵权请联系删除

相关文章

  • Ubuntu下NFS服务器的安装与配置

    由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下Ubuntu环境NFS服务器的安装与配置流程。1.NFS服务的简介: NFS是NetworkFileSystem的缩写,是Sun公司于1984开发的一种分布式文件系统协议。它的核心功能就是可以通过网络,让不同的客户端,可以彼此访问共同的文件系统,来实现文件的共享。像许多其他的协议,建立在开放的网络计算的远程过程调用(RPC)之上。NFS是在RFC中定义的开放标准,允许任何人实现该协议。NFS服务器可以让客户端将网络远程的NFS服务器分享的目录,直接挂载到本地端的机器当中。本地端的机器通过直接读写挂载的目录,就可以同步到NFS服务器之上。版本更迭 NFSV2 2是NFS最早实现的版本之一,基于UDP协议实现了一个无状态的服务器版本。仅仅支持32位的系统,且不大于2GB的文件。 NFSV3 3的版本在2的基础之上做了大量的改进。支持了大于2GB的文件读写,使用了TCP协议来进行数据交互,支持了客户端的异步读写来提高文件系统的性能(同时也会产生我们头疼的一致性问题) NFSV4 4的版本提高了安全性,通过TCP协议实现了一

  • 权限认证之ServiceAccount

    号里很多瓜友问我,Kubernetes中的应用程序是如何访问kubernetes中的资源对象的?我想了下这个问题,觉得可以先从"SA"谈起。权限管理是Kubernetes和OpenShift的核心功能之一。Kubenetes本身提供了一系列的安全机制,比如认证(Authentication)、授权(Authorization)、准入控制(AdmissionControl)认证(Authentication)、授权(Authorization)、准入控制(AdmissionControl)。但是它本身并不管理用户的信息,用户的身份信息管理是以插件形式存在的,比如管理员可以配置HTpasswd、KeyStone、LDAP、GitHub等登录验证方式。自然人用户可以获取相应的Token来去访问APIServer.那么在系统中运行的程序进程该如何访问APIServer呢?注:在Kubernetes/OpenShift云计算系统中,所有的用户(自然人用户,程序用户)都需要和APIServer进行交互,只有认证、授权、准入控制通过后,这些用户才能使用相应的资源(API)。API

  • Java DO到DTO转换工具类和BeanUtils.copyProperties()

    项目中需要使用对象(DO)属性赋值给包含其属性子集的对象(DTO)或者显示层对象(VO)。这种场景下需要大量调用getset方法,当属性较多时代码量较大而且非常繁琐。因此采用反射机制,对此类场景进行简单封装。importjava.lang.reflect.Field; importjava.util.Set; importjava.util.stream.Collectors; importjava.util.stream.Stream; /** *对象source私有属性复制给destination对象的同名私有属性工具 *注意:只支持属性名完全相同的属性复制,支持忽略一些属性,其他需要手动getset *@author明明如月w1251314@sohu.com */ publicclassPropertyUtils{ /** *将source对象的属性填充到destination对象对应属性中 *@paramsource原始对象 *@paramdestination目标对象 */ publicstaticvoidcopyProperties(Ssource,Ddestinati

  • python-将文件按日期分类

    文章目录问题解决成功截图读取文件的创建时间移动文件判断目录是否存在判断是否是重复文件创建文件夹遍历所有文件因此综合得到整体代码升级版,不仅按照日期,也按照格式进一步分类问题小米云盘只有5G,不经意间存了一些乱七八糟的东西,我希望将他们全部下载后然后清空小米云盘,这样小米云就不会偷偷地把一些我已经删掉的资料再同步给我的手机。 导致删不敢删,留着也烦人。我不希望那些公司玩弄我的资料。 下载后的文件自动按照时间分类创建一系列的文件夹分别存入下载的内容。 数千个文件按时间以及格式归类创建文件夹解决整体逻辑是读取所有的文件名字,找到文件后读取创建日期,格式信息,如果这个日期文件夹比如2020-2-1已经存在,再判断目标文件夹是否有重复文件,满足条件则将文件移入。否则创建一个新的创建日期的文件夹,然后移动入成功截图我要移动的文件有数千个,已经成功过了,因此这里放了一个测试的案例图片,只有两个文件。 读取文件的创建时间os.stat()方法 os.stat()方法用于在给定的路径上执行一个系统stat的调用。 st_mode:inode保护模式 st_ino:inode节点号。 st_dev:ino

  • Redis事件处理机制详解

    Redis服务器的事件主要处理两方面:处理文件事件:在多个客户端中实现多路复用,接受它们发来的命令请求,并将命令的执行结果返回给客户端时间事件:实现服务器常规操作1文件事件Redisserver通过在多个客户端间多路复用,实现了高效的命令请求处理:多个客户端通过socket连接到Redisserver,但只有在socket可无阻塞读/写时,server才会和这些客户端交互。Redis将这类因为对socket进行多路复用而产生的事件称为文件事件,文件事件可分类如下:1.1读事件读事件标志着客户端命令请求的发送状态。当一个新的client连接到服务器时,server会给该client绑定读事件,直到client断开连接后,该读事件才会被移除。读事件在整个网络连接的生命期内,都会在等待和就绪两种状态之间切换:当client只是连接到server,但并未向server发送命令时,该客户端的读事件就处于等待状态当client给server发送命令请求,并且请求已到达时(相应的套接字可以无阻塞地执行读操作),该client的读事件处于就绪状态。示例如图展示三个已连接到server、但并未发命令的c

  • 解决django 和 vue 渲染冲突问题 event

    今天解决了django和vue同时渲染冲突的问题, 需求是这样的,后端取回对象列表由django模板渲染,取回后的列表大概是这样的复制1234 2234 3234 4234 .... 每一行渲染的东西都是不同的数据) 其中我遇到的难题就是因为我是用django+vue混合渲染 所以他们两的渲染标签对天生就是冲突的,vue也没法直接访问django渲染列表对象里的值,所以就有了这个问题 简单来说就是我用django渲染的列表需要用vue去捕捉我当前点击的对象是什么,需要拿到切确的对象值,然后 做下一步处理, 起初的处理方案我是想直接用引擎模板通过参数传递的方式传入到vue的方法中 结果是vue没法直接捕获到django模板传入的参数,显示为objectundefined 它们长这样@click='get_value({{value}})'value是django渲染的值 这是我用的方法,思考了一阵子后发现这个方法并不可行,所以用了第二种方法 那就是在4row中加入了一个a标签,a标签用data的方式绑定django模板渲染出来的结果,它们长这样 {%forva

  • 何为越权、如何解决?

    阅读文本大概需要3分钟。小编最近在公司送审的后台接口发现了严重的越权漏洞,今天就和大家谈下为何越权漏洞。 0x01:越权漏洞的产生越权漏洞是Web应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。当然这些数据仅限于存在漏洞功能对应的数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。所以测试越权就是和开发人员拼细心的过程如何演示一个越权问题可以参考https://blog.csdn.net/weixin_43915842/article/details/90612553 复制0x02:越权漏洞的分类横向越权(水平越权):横向越权指的是攻击者尝试访问与他拥有相同权限的用户的资源。例如,两个不同的公司A和B,通过修改请求,公司A可以任意修改B公司的员工、部门、考勤等信息。纵向越权(垂直越权):纵向越权指的是一个低级别攻击者尝试访问高级别用户的资源。例如,同一个公司不同权限的管理员A和B,通过修改请求,管理员A可以修改不在他管辖范围内的员工的部门、考勤、工资等信息。交叉越权:同时存在横向越权和纵向越权0x03

  • Vue判断设备是移动端还是pc端

    经常在项目中会有支持pc与手机端需求。并且pc与手机端是两个不一样的页面。这时就要求判断设置,根据不同的设置跳转不同的路由。 在router/index.js中添加两个页面export default new Router({   routes: [     { // pc端首页       path: '/',       name: 'index',       component: () => import('../views/index.vue')     },     { // pc端首页       path: '/m_index',       name: 'm_index',       component: () => import('../views/m_index.vue')     }, ] })复制在App.vue的mounted方法中对设置进行判断,如下:if (this._isMobile()) {   this.$route

  • Pytorch 深度学习实战教程(二):UNet语义分割网络

    一、前言本文属于Pytorch深度学习语义分割系列教程。该系列文章的内容有:Pytorch的基本使用语义分割算法讲解如果不了解语义分割原理以及开发环境的搭建,请看该系列教程的上一篇文章《Pytorch深度学习实战教程(一):语义分割基础与环境搭建》。本文的开发环境采用上一篇文章搭建好的Windows环境,环境情况如下:开发环境:Windows开发语言:Python3.7.4框架版本:Pytorch1.3.0CUDA:10.2cuDNN:7.6.0本文主要讲解UNet网络结构,以及相应代码的代码编写。二、UNet网络结构在语义分割领域,基于深度学习的语义分割算法开山之作是FCN(FullyConvolutionalNetworksforSemanticSegmentation),而UNet是遵循FCN的原理,并进行了相应的改进,使其适应小样本的简单分割问题。UNet论文地址:点击查看研究一个深度学习算法,可以先看网络结构,看懂网络结构后,再Loss计算方法、训练方法等。本文主要针对UNet的网络结构进行讲解,其它内容会在后续章节进行说明。1、网络结构原理UNet最早发表在2015的MIC

  • JavaScript基础知识梳理(下)

    ?内容速览?实现ES5继承的4种方法原型和原型链作用域和作用域链EventLoop执行上下文闭包的理解和分析ES5继承题目:ES5中常用继承方法。 方法一:绑定构造函数缺点:不能继承父类原型方法/属性functionAnimal(){ this.species="动物"; } functionCat(){ //执行父类的构造方法,上下文为实例对象 Animal.apply(this,arguments); } /** *测试代码 */ varcat=newCat(); console.log(cat.species);//output:动物复制方法二:原型链继承缺点:无法向父类构造函数中传递参数;子类原型链上定义的方法有先后顺序问题。注意:js中交换原型链,均需要修复prototype.constructor指向问题。functionAnimal(species){ this.species=species; } Animal.prototype.func=function(){ console.log("Animal"); }; func

  • python进阶之生成器

    迭代器  什么叫迭代    可以被for循环的就说明他们是可迭代的,比如:字符串,列表,字典,元祖,们都可以for循环获取里面的数据  下面我们看一个代码:  1number=12345 2foriinnumber: 3print(i) 4输出: 5Traceback(mostrecentcalllast): 6File"D:**.py",line272,in<module> 7foriinnumber: 8TypeError:'int'objectisnotiterable复制报错信息是说:int类型不可迭代,不能使用循环取每个数据。那么我们又怎么说字符串,列表,字典,元祖是可迭代的呢?1fromcollectionsimportIterable 2 3l=[1,2,3,4] 4t=(1,2,3,4) 5d={1:2,3:4} 6s={1,2,3,4} 7 8print(isinstance(l,Iterable))#判断是否是可迭代 9print(isinstance(t,Iterable)) 10print(isinstance

  • 从wait的源码看撤销偏向锁的过程(revoke and rebias)

    wait源码实现如下//TRAPS表示是否有异常 voidObjectSynchronizer::wait(Handleobj,jlongmillis,TRAPS){ if(UseBiasedLocking){ //如果是使用了偏向锁,要撤销偏向锁 BiasedLocking::revoke_and_rebias(obj,false,THREAD); assert(!obj->mark()->has_bias_pattern(),"biasesshouldberevokedbynow"); } ... 复制在biasedLocking.cpp中可以看到方法的实现。整体结构划分如下BiasedLocking::ConditionBiasedLocking::revoke_and_rebias(Handleobj,boolattempt_rebias,TRAPS){ //1:必须在安全点 assert(!SafepointSynchronize::is_at_safepoint(),"mustnotbecalledwhileatsafepoint&

  • 重建「巴别塔」:谷歌推出全新端到端语音翻译系统

    机器之心报道参与:泽南、张倩、淑婷要将一个外国人说的话翻译成本国文字,通常需要两种机器学习模型:语音识别和文本翻译。最近,谷歌提出的Translatotron模型创造性地实现了单一模型端到端(End-to-End)的直接语音翻译。不仅如此,它还可以保留说话人的声音特征输出语音,实现最直接的翻译。可能是职业习惯,《流浪地球》中有一幕让小编印象非常深刻:刘培强戴着耳机和俄罗斯宇航员交流,两人各自说着母语,然后被实时同步翻译,毫无障碍不说,甚至拉家常开玩笑都没问题。这种黑科技,太好用了叭!最近谷歌的一项研究不仅实现了这项黑科技,而且比起电影里的机器人声音,谷歌的模型还可以模仿源说话者的声音生成目标语音。这么说吧,利用这个模型,当你说英文时,可以直接输出你“讲”的西班牙语。这一神奇的模型叫做Translatotron,它不仅可以实现端到端的语音翻译,还可以比传统的串联模型更快地完成翻译,并避免一些复杂过程所导致的「并发症」。在过去的几十年里,语音到语音翻译系统的发展目标一直是帮助使用不同语言的人互相沟通。这种系统系统通常可以分为三个部分:将源语音转换为文本的自动语音识别、将得到的文本翻译为目标

  • iOS中JSON数据的解析 原

    iOS中JSON数据解析官方为我们提供的解析JSON数据的类是NSJSONSerialization,首先我们先来看下这个类的几个方法:+(BOOL)isValidJSONObject:(id)obj;判断一个数据对象是否可以转化为JSON数据+(NSData*)dataWithJSONObject:(id)objoptions:(NSJSONWritingOptions)opterror:(NSError**)error;将JSON数据写为NSData数据,其中opt参数的枚举如下,这个参数可以设置,也可以不设置,如果设置,则会输出视觉美观的JSON数据,否则输出紧凑的JSON数据。typedef NS_OPTIONS(NSUInteger, NSJSONWritingOptions) {     NSJSONWritingPrettyPrinted = (1UL << 0) }复制+(id)JSONObjectWithData:(NSData*)dataoptions:(NSJSONReadingOptions)opterror:(NSError**)error;这个方

  • JavaScript Cookbook 2nd 之 Function

    昨晚翻了一下,虽然都是一些旧知识,不过深入下去对照着其他资料一起看,还是能发现一些有意思的地方。函数式编程反正之前我是没搞懂函数式和命令式的区别,也很疑惑函数式编程中,如果出现分支怎么办,昨晚总算弄明白了。//我们有4个基础函数,会根据不同的业务逻辑进行组装使用   //自动创建 functionautoCreate(){}   //自动同步 functionautoSync(){}   //流程A functionprocessA(){}   //流程B functionprocessB(){}   //流程A与流程B在业务上是互斥的复制传统的命令式编程,我们会这样写业务逻辑functionservice(errorHandler){      varresult;     if(!id){     result=autoCreate();     if(result.error){       errorHandler(result);     }   }     if(type==='a'){     processA();     if(result.err

  • 欧盟将决定是否赋予机器人电子人法律身份

    欧盟委员会的议员们已就为机器人授予法律地位进行了投票,建议将其归为“电子人员”,并警告需要制定新的法律,以解决机器如何为其“行为或不作为”负责的问题。来自卢森堡的欧洲议会社会党议员提交的报告草案指出,目前的规则对于所谓的“技术革命”是“不足的”,并建议欧盟建立“基本的道德原则…以避免陷入潜在陷阱”。该议员的决议轻松得到了欧洲议会法律事务委员会的通过,议会可能于2017年2月份就该决议进行全员表决。报告建议,机器人和其他人工智能产品,如机械人和人形机器人都可能“导致一场新的工业革命,这可能会波及所有社会阶层”。他们表示:机器人的自动化程度越高,就越不能被看成其他行为人(例如制造者、所有者、用户等)手中的简单工具。这反过来又使得普通的责任规则显得不够充分,亟待制定新的规则。重点在于如何让机器能够部分或完全地对其行为或不作为负责。因此,解决机器人是否应具有法律地位这一根本问题变得越来越迫在眉睫。在委员会对其议案投票后,Delvaux-Stehres女士重申需要建立一个机器人法律框架。她指出,越来越多日常生活领域正受到机器人越来越大的影响,为确保机器人能够继续为人类服务,迫切需要创建一个健全的

  • mybatis-plus使用聚合函数报错---------net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: &quot;**&quot; &quot;**&quot;

    错误日志: Causedby:net.sf.jsqlparser.parser.ParseException:Encounteredunexpectedtoken:"with""WITH" atline62,column20. Wasexpectingoneof: "&" "::" ";" "<<" ">>" "COLLATE" "EMIT" "HAVING" "[" "^" "|" <EOF> atnet.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31234) atnet.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31067) atnet.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:163) atnet.sf.jsqlparser.parser.CCJS

  • 【one day one linux】好用的数据处理工具awk

    awk:好用的数据处理工具 取自《鸟哥私房菜》awk一节 应用:awk是以一行为一次的处理单位,将一行分成数个“字段”进行处理。   #awk的命令格式 awk'条件类型1{动作1}条件类型2{动作2}...'filename复制 awk后面接两个单引号并加上大括号{}来设置想要对数据的处理动作。awk处理后面接的文件名字. awk主要处理每一行的字段内的数据,而默认的字段的分隔符为空格键或者[tab]键。 如下的例子,处理last取出的登录数据: last-n5复制 #last-n5|awk'{print$1"\t"$3}'复制 上面是默认使用空格键作为分隔符。 有上面可以看出awk把每个字段分配一个变量名称,$1表示第一个字段,$2表示第二个字段,而$0表示一整行。   awk的处理流程是: 读入第一行,并将第一行的数据填入$0$1$2等变量中 依据条件类型限制,判断是否进行后面的动作。(上面的没有条件类型) 做完所有的动作和条件类型 (上面的动作就是"print$1"\t"$3") 后面还有行的话,重复以上的动作 awk的内置变量

  • 公募基金经理专题(七):兴全基金谢治宇

    2018年1月16日,兴全合宜基金(163417)正式开始募集。“明星基金经理+出色的历史业绩+兴全口碑+市场行情+渠道配合”,爆款基金应运而生。截至当日收盘,兴全合宜累计募集372亿,成为当下最为热门的权益类基金,一时风光无两。业内都在说,兴全忙活一天,顶上别家公司奋斗十年。而截至2017年底,竟有61家基金管理人公募规模不到327亿元,其中不乏成立十年以上的老基金公司! 2年时间,兴全合宜累计收益23%,年化回报接近11%;同期沪深300指数下跌6%,年化回报-3%,这样的回报相较于大盘来说,还是很不错的。 坦白说,兴全合宜的发行算不上成功。首先,从事后来看这只基金的建仓时点很不理想,1月份募集完毕,随即遭遇国内去杠杆和中美贸易争端,A股全面下挫,全年沪深300下跌25%,兴全合宜回撤16.8%,面对投资人较高的心理预期,不管是销售渠道还是管理人都有很大压力,那段时间对谢治宇的质疑声也是不绝于耳。其次是对规模的控制缺乏预判。规模是业绩的天敌,如此大的规模注定会影响产品业绩。一只基金372亿的规模,真的是在“负重前行”。尽管管理人不愿承认规模过大,但在实际运作过程中确确实实遇到了灵

  • sharc dsp 学习记录1---2014-07-30

    从今天开始记录学习sharcdsp过程中的点点滴滴吧。 DPI:DigitalPeripheralInterfaceDAI:DigitalAudioInterface SHARCSIMDCoreSIMD单指令多数据ADSP-2148x包含两个用作单指令、多数据(SIMD)引擎的计算处理器元件,分别称为PEX和PEY,各元件均由ALU、乘法器、移位器和寄存器文件组成。PEX始终有效,PEY可通过将MODE1寄存器的PEYEN模式位设为1来使能。SIMD模式允许处理器在两个处理元件中执行同一指令,但各处理元件处理不同的数据。这种架构对于执行计算密集型DSP算法非常有效 SIMDEnabled:Whenanycomputationordataaccessisexecuted,itwillbeperformedautomaticallyinbothprocessingelementsF0=F1+F2;explicitlydefinedinsourcecodeWillexecuteinPExS0=S1+S2;implicitoperationnotdefinedin

  • 第1章 Linux命令行简介

    1.1Linux命令行概述 1.2在Linux命令行下查看命令帮助 1.3Linux关机、重启、注销命令 1.4老男孩的运维思想 1.1Linux命令行概述 1.1.1Linux命令行的作用与意义   Linux是一个主要通过命令来进行管理的操作系统。 1.1.2Linux命令行介绍 1)通过SSH工具远程连接阿里云ECS服务器,如Xshell; 2)使用阿里云Web控制台-远程连接ECS服务器 3)CentOSLinux命令行退出命令操作的界面 1.1.3Linux命令行常用快捷键 常见的Linux远程连接工具:SecureCRT、Xshell客户端软件; 1)最有用的快捷键; tab命令自动补全快捷键; 2)移动光标快捷键; Ctrl+a Ctrl+e Ctrl+f Ctrl+b 3)剪切、粘贴、清除快捷键; Ctrl+Insert Shift+Insert Ctrl+k Ctrl+u Ctrl+w Ctrl+y Ctrl+e Ctrl+h 4)重复执行命令快捷键 Ctrl+d Ctrl+r Ctrl+g 5)控制快捷键 Ctrl+l Ct

相关推荐

推荐阅读