Python和Azure DevOps Server

Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初主要为系统运维人员编写自动化脚本,在实际应用中,Python已经在前端、后台、测试和大数据分析中广泛使用。
DevOps Server (TFS)作为一个全流程的开发测试运维平台,支持Python语言,当然是必须具备的一个功能。下面介绍如何在DevOps Server中调用和运行Python脚本。

软件下载

由于Azure DevOps Server的流水线运行在代理服务器上,首先需要在你的代理服务器安装Python。
Python 3和Python 2有很大的区别,在安装Python之前,最好与你的运维工程师商量好。下面我们已经Python 3.6.5为例:
软件下载地址:https://www.python.org/downloads/release/python-365/
选择你需要的安装包,我们在这个例子中使用Windows 64为的安装包:


安装

在安装过程中,特别需要注意,请选择自定义安装模式。
因为,在默认安装模式中,Python安装程序不会自动设置环境变量,还会将目录安装在用户目录中,这样的配置,对于服务器端程序来说,显然不行。

如果你的服务器可以连接互联网,就勾选全部选项,如果不能,至少要将环境变量的内容勾选上:


验证

安装完成以后,可以在服务器上,打开命令行创建,运行脚本去验证你的安装是否正确:

py --version
python --version

系统会提示你的python版本号。注意也可以在脚本中使用py这个别名代理python


在Azure DevOps Server上运行python脚本

好了,现在可以在Azure DevOps的流水线中运行你的python任务了。
我们在测试过程中,添加了hello代码

print("hello, world")
import this

糟糕,出现错误!

当我们运行上面定义的python任务时,系统提示下面的错误

Parameter 'toolPath' cannot be null or empty。

分析原因是由于安装Python的过程中,软件自动设置了环境变量,例如在系统环境变量Path中添加了python的路径。而这种变更,TFS的代理程序不能自动获取,必须要通过重启代理,使环境变量生效。下面是重启代理的截图:

重启代理后,再次运行包含了Python脚本的任务,系统提示成功,如下图:

(结束)

http://www.cnblogs.com/danzhang/  DevOps MVP 张洪君

--

在Azure DevOps Server(TFS)上集成Python环境,实现持续集成和发布的更多相关文章

  1. 在Azure DevOps Server的代理服务器安装Python环境

    Python和Azure DevOps Server Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初主要为系统运维人员编写自动化脚本,在实际应用中,Python已经在前端 ...

  2. Azure DevOps Server (TFS) 代码库Repo管理培训

    Repo是分布式代码库Git中的一个专用词,用于存储和管理开发团队中特定的源代码. 使用Git,可以协调整个团队的代码更改. 即使您只是一个开发人员,版本控制也可以帮助您在修复错误和开发新功能时保持井 ...

  3. 集成Azure DevOps Server(TFS) 与微软Teams

    1.概述 Microsoft Teams是Office 365中团队协作的中心.将团队的所有聊天.会议.文件和应用程序放在一个位置.软件开发团队可以在一个专门的协作中心中即时访问他们所需的所有内容,T ...

  4. Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)

    之前写过一篇博客"探索TFS Git 库文件换行(CRLF)的处理方式",主要是针对TFVC代码库的. 下面这篇文章说明如何在TFS的Git库中处理代码换行的问题. 概述 在Azu ...

  5. 在Azure DevOps Server (TFS)的流水线中编译和测试Xcode移动应用(iPhone)

    概述 Xcode是开发基于苹果macOS系统的桌面应用和移动应用的主要IDE工具.使用Azure DevOps Server (原名TFS)系统中的pipelines流水线功能,可以方便的集成Xcod ...

  6. 还原Azure DevOps Server (TFS)中误删除的生成流水线

    流水线历史记录 DevOps Server流水线的历史记录有完善的版本日志,用户可以随时回退到修改过程中的任何一个版本,还能比较差异.这个历史记录功能可以和代码库中的版本控制媲美. 图一:生成历史记录 ...

  7. 在Azure DevOps Server (TFS 2019) 流水线传递参数

    变量概述 在Azure DevOps Server的流水线中,变量是衔接不同任务和不通代理之间的桥梁,它可以使相对松散.各自独立的任务之间相关影响并共享数据.在流水线中使用变量,可以在各任务之间相互调 ...

  8. 在Azure DevOps Server (TFS)中实现VUE项目的自动打包

    概述 Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.由于它在数据绑定.页面展示和使用简单方面有很大的优势,逐渐被越来越多的前端开发团队使用.本文 ...

  9. 在Windows操作系统的文件管理器中集成Azure DevOps Server (TFS)工具菜单

    故事场景 使用过SVN的用户,都知道在Windows的文件夹上点击鼠标右键,就会弹出Tortoise SVN的操作菜单(俗称小乌龟).通过这个功能,用户不需要打开SVN工具,可以直接在Windows的 ...

  10. Azure DevOps Server (TFS) 修改工作项附件大小限制

    1. 问题描述 当上传工作项附件时,系统提示"附件大小限制" 2.解决方案 2.1 默认设置 默认情况下,Azure DevOps Service和Team Foundation ...

随机推荐

  1. GO学习笔记 - 数据校验

    本文主题:基于asaskevich/govalidator实现Golang数据校验 小慢哥的原创文章,欢迎转载 目录 ▪ 一. asaskevich/govalidator介绍 ▪ 二. 字符串匹配 ...

  2. Enum.GetValues(),返回System.Array的一个实例

    Array enumData = Enum.GetValues(e.GetType()); Console.WriteLine("This enum has {0} members.&quo ...

  3. Windows Service 服务搭配FluentScheduler实现定时任务调度

    Windows Service 服务 创建Windows Service 项目 创建一个Windows Service项目,并将项目名称改为 TaskWindowService 在解决方案资源管理器内 ...

  4. eclipse启动tomcat警告 [SetPropertiesRule]{Server/Service/Engine/Host/Context}

    解决问题:解决办法是:关闭tomcat,双击eclipse下tomcat服务器,在出来的Tomcat server at localhost页面中找到server options选项,选中其中的选项” ...

  5. ASP.NET Core系列:依赖注入

    1. 控制反转(IoC) 控制反转(Inversion of Control,IoC),是面向对象编程中的一种设计原则,用来降低代码之间的耦合度. 1.1 依赖倒置 依赖原则: (1)高层次的模块不应 ...

  6. 前端开发JS——快速入门

    1.JS的核心标准ECMAScript        组成      ECMAScript------>核心语法标准      DOM------------->对文档节点的操作      ...

  7. node整个环境的启动

    1.启动mongodb服务 在 下载 / mongodb-osx- / 文件夹 新建终端窗口 ,输入命令,启动mongodb服务: mongod --dbpath data --logpath log ...

  8. 替换 Docker 或 Laradock 中 Debian 系统镜像源解决软件安装问题

    Docker Debian 镜像源替换 因多数默认的 Docker 镜像为国外的,而采用的镜像源也是国外的,故访问很慢,所以我们需要替换为国内的(比如阿里云或163等). 163 - Debian A ...

  9. PHP数组相关算法

    一.排序算法 1. 冒泡排序 2. 选择排序 二.查找算法 1. 遍历 2. 二分查找

  10. Linux 多线程应用中如何编写安全的信号处理函数【转】

    转自:https://www.cnblogs.com/virusolf/p/4945642.html http://blog.163.com/he_junwei/blog/static/1979376 ...