网工速通Python-part1-开发环境搭建
  vYgR16aEGw5K 2023年11月02日 61 0

《从零开始NetDevOps》是本人8年多的NetDevOps实战总结的一本书(且称之为书,通过公众号连载的方式,集结成册,希望有天能以实体书的方式和大家相见)。

NetDevOps是指以网络工程师为主体,针对网络运维场景进行自动化开发的工作思路与模式,是2014年左右从国外刮起来的一股“网工学Python"的风潮,最近几年在国内逐渐兴起,最近两年在国内也有少量的几本书,从不同角度来阐述了NetDevOps和它的技能体系,但和本人对于NetDevOps的理解还是有所不同,因为国内的网络环境相对比较复杂,而一些知识又和国外的平台绑定比较深,导致NetDevOps实践中有很多难题困扰着大家,笔者也在各种平台和场合解答过很多问题。此次希望能通过自己的知识分享,给大家呈现出一个不同于其他人的实战为指导、普适性强、善于抠细节、知其然知其所以然风格、深入浅出的NetDevOps知识体系,给大家一个不同的视角,一个来自于实战中的视角。

本人在国内某大型金融机构的数据中心从事网络自动化开发8年之久,从最早的脚本开发、一个简单的web自动化工具,到目前迭代出了一个由众多微服务组成的网络自动化运维系平台,覆盖了国内外众多主流厂商的设备,日常运维各种“奇葩”需求,和众多网工交流过NetDevOps底层技术,和很多网络团队管理者聊过网络自动化的前景与NetDevOps思想,甚至有幸和一些总监、创始人们聊过网络自动化运维平台的建设。

思想的不断碰撞、知识体系的不断迭代,让我有很多想说又无法名状的想法与情愫,希望在这本书中,与读者朋友们娓娓道来。






第二章 网工速通Python

在第一章,为大家分享了我对NetDevOps的认知,NetDevOps发展的几个重要阶段,同时简单介绍了Python这门开发语言,本章节开始我们要开始硬核之旅,带领大家从零开始掌握Python,只有掌握了Python这门开发编程语言,我们才能够按照我们的需求编写脚本乃至工具平台。

Python是一门十分简单容易上手的编程语言,对于网络工程师而言,掌握Python如同家常便饭,大家所要做的就是按部就班掌握每个小节的知识点,并亲自将它敲出来!本章节,我会从网络运维的知识体系,将Python的为大家讲解清楚,讲解最核心的部分。当新手面对一门语言,个人认为,我们需要尽快地掌握最基础、最核心的知识,快速动手编写有成效的脚本,这样才会有行进下去的理由。很多初学者最容易犯的错误,可能就是买了一本非常好的书,从头看到尾,学完之后,说懂吧,写不出来有用的代码(减少自己的工作量的脚本),说不懂吧,他还能写出来一些简单的脚本,比如比数字大小、猜数字等。这也与NetDevOps的理念不合,我们并没有把开发应用到日常运维之中。如何避免这种窘境?最佳的实践方法就是掌握最核心最基础的语法,以解决实际工作中遇到的问题为行进方向,不要被庞大的编程语言体系淹没在学习的迷雾之中。通过小步快跑的方式,以基础语法为核心,以解决实际问题为宗旨,不断扩展这门语言的学习范围和深度,实现滚雪球的效应,在一个个简单的脚本中看到光,在一个个问题的解决之后找到自信!

同时在学习知识的过程中要学会举一反三,触类旁通。比如很多书籍以实际生活中的例子来讲基础语法,我们作为网络工程师,就要学会将这些情景映射到网络运维之中,类比网络运维。

工欲善其事必先利其器,首先让我们一起动手来搭建一个Python的开发环境吧!

2.1 版本选择与环境搭建

我该选择哪个Python版本?

关于Python版本的选择,在这个时代已经毫无疑问,一定选择Python3。Python2在当今这个时代已经是明日黄花,无论是官方还是第三,对于Python2的支持都到了尾声。且根据个人实践,我更推荐Python3.8、Python3.9。根据我在实际生产中的使用,以及对一些Python工具包的观测,很多包至少要求3.6的某个比较靠后的版本,基本都能支持3.9,所以3.8和3.9是不错的选择。本书所涉及到的包对3.9的支持也比较好,且3.9的官方支持时间会比3.8时间久一些,所以最优解目前个人认为是3.9。当然随着时间的变化,大家也可以按照这个思路去决定你入门的Python版本。


同时根据笔者的一些实践经验来看,我也推荐初学者安装Anaconda最新版(截止到发稿,目前最新版本是2022.5,内含Python3.9的版本),它是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,虽然是用于科学计算,但是集成的这180个包,如果是身处隔离的办公网络内,可以减少我们很多的麻烦,且内部集成了Jupyter Notebook这种基于web的交互式的IDE(开发集成环境,简单理解就是开发用的工具)。对于新手或者简单写些测试脚本也都是不错的选择。

当然本书还是以纯粹的Python环境作为演示,暂不安装Anaconda。

Python的安装

对于新手,我一定会强调:保证你的电脑中只有一个Python环境!如果安装出现了问题没有达到预期,一定卸载干净,重启电脑后,确保没有文件残留后,再重新点击安装文件进行安装!

一个电脑是可以装多个Python环境的,但是Python的可运行文件在环境变量中只有一个会生效,我们安装了一个Python环境后加载到了环境变量中,出于某种原因,我们可能选择重装,如果稍有操作不慎,可能会导致电脑中有两个共存的Python,而对于初学者而言,往往搞不清楚自己究竟用的是哪个Python环境,这个是我在实际工作中所观察到的,很多网络工程师都会被环境的安装劝退,或者是在后期,由于环境的问题导致自己一直无法进行开发。比如你安装了一个连接网络设备的netmiko包(后续会详细讲到),以为自己使用的是A环境,在开发中IDE也默认了A环境,但是你无论怎么导入这个包,程序都说找不到。原因是由于初学阶段安装时各种问题重装Python,导致多个Python共存,netmiko实际被安装到了B环境。你的开发环境指向了A环境,无论你怎么导入都不会成功的。

我们一定要去官方网站,结合自己的操作系统下载对应的Python安装文件。官网地址https://www.python.org/

网工速通Python-part1-开发环境搭建_网络运维

在官网中,我们点击Downloads的All releases导航栏,进入到版本选择页面。

网工速通Python-part1-开发环境搭建_网络工程师_02

在上半部分,我们会看到Python目前几个活跃的版本,它的发行日期以及官方支持结束日期。其中3.9的版本综合官方支持时长和目前主流的NetDevOps Python工具包支持情况,是最优解。

我们来到网站中部,选择最新的Python3.9版本即可,点击download进入安装包选择。

网工速通Python-part1-开发环境搭建_网络工程师_03


在新打开的网站底部,我们选择对应的安装文件点击即可下载。本书操作系统为64位win10操作系统,所以选择对应的版本下载安装。

网工速通Python-part1-开发环境搭建_网络运维_04


双加对应的安装文件,这个时候一定要勾选上将Python添加到环境变量的选项,这样我们打开cmd窗口输入Python才会有效果。我们可以选择安装到默认位置,也可以安装到指定盘符目录下。

网工速通Python-part1-开发环境搭建_Python_05

很快就可以安装完成。这个时候我们打开CMD,输入“python”,进入到Python的交互式编程窗口。至此,Python就完成了安装。

通过在CMD(或者其他terminal中)敲入“python”进入到的模式是Python自带的交互式编程,在这里我们每敲一个命令都会实时计算。但是关闭窗口后这些这些代码也都消失。其实更多用于演示或者测试一些比较短的代码,响应会更快一些。

网工速通Python-part1-开发环境搭建_Python_06

现在请跟我敲下第一行代码

print('Hello,world')

网工速通Python-part1-开发环境搭建_网络工程师_07

至此我们完成了Python的安装,敲下了我们的第一行Python代码。

总结
  1. 新手建议选择Python3.9。
  2. 新手建议电脑中只有一套Python环境。

2.2 IDE的推荐与设置

安装好了Python环境,我们就需要选择Python的IDE(集成开发环境)了。IDE一般都支持支持语法高亮、智能代码补全、自定义快捷键、自动格式化代码等等。合理使用优秀的IDE,可以极大地提升我们的开发效率。

对于新手,Python的IDE选择,笔者推荐PyCharm的社区版本,PyCharm是由JetBrains打造的一款Python IDE,有社区版和专业版,专业版加入了一些web开发和科学计算开发的便利功能,对于普通用户,社区版足矣。

安装与配置

通过PyCharm的官方网站 https://www.jetbrains.com/pycharm/ 我们点击Download,会打开一个新的页面,选择社区版即可。

网工速通Python-part1-开发环境搭建_Python_08

双击安装软件,按需调整安装位置,以及一些其他的选项(这些选项不影响基本使用),等待安装结束后打开PyCharm。

网工速通Python-part1-开发环境搭建_网络运维_09

登录之后会让我们选择创建工程还是打开一个现有的代码项目。在此我们选择创建新项目。

我们修改一些项目的配置,比如我们选择修改项目名称和位置。默认的如下:

网工速通Python-part1-开发环境搭建_Python_10

在这个配置选项中,对于初学者我们建议不使用虚拟环境(虚拟环境我们在本书的后续会讲),记得我们说过,对于新手尽量只有一套Python环境。

我们选择自己配置Python解析器,如下图点击“...”

网工速通Python-part1-开发环境搭建_网络工程师_11


这个时候会弹出一个窗口,我们选择系统解析器,在右侧的解析器地址中选择我们安装的Python即可(对于新手而言一定要先安装Python,再安装Pycharm)。

网工速通Python-part1-开发环境搭建_网络运维_12


我们也可以选择修改我们的项目名称。之后点击create按钮即可创建项目。

网工速通Python-part1-开发环境搭建_网络工程师_13


项目创建之初PyCharm会对我们的Python环境进行索引,以便提供更方便的开发功能。同时默认帮我们创建了一个代码,我们可以删除掉,或者在上一步取消创建main.py的选项。

网工速通Python-part1-开发环境搭建_网络工程师_14


创建第一个脚本并运行

在右侧的项目区域我们右键选择New->Python File,给文件命名即可创建好Python文件。

网工速通Python-part1-开发环境搭建_网络运维_15

在新建的Python文件中我们简单编写打印一个字符串的代码,然后右键,选择 Run 我们的脚本名称。

网工速通Python-part1-开发环境搭建_Python_16


结果如下,在下方会有一个窗口,把我们的代码结果输出,程序如果正常执行,最后的exit code是0。

网工速通Python-part1-开发环境搭建_网络运维_17

至此我们的整个开发环境已经搭建好了。PyCharm有很多的便利用法,我们在后续文章中逐步展开。



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  zwkHF6kqOgW1   2023年11月02日   85   0   0 python
  rRtXVg6Hk601   2023年11月02日   58   0   0 python
  zwkHF6kqOgW1   2023年11月02日   49   0   0 python
vYgR16aEGw5K