一. 华为云软件开发云与Python

1. 华为云软件开发云简介

华为云软件开发云(DevCloud)是集华为近30年研发实践,前沿研发理念,先进研发工具为一体的一站式云端DevOps平台,面向开发者提供包括项目管理,代码托管,流水线,代码检查,编译构建,测试管理,移动应用测试,部署,发布,CloudIDE,研发协同等基础功能的研发工具服务。覆盖软件开发全生命周期,支持多种主流研发场景,让软件开发更高效。

官网入口:https://www.huaweicloud.com/devcloud/

2.Python特点

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

·Python 是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

·Python 是交互式语言:这意味着,您可以在一个Python提示符,直接互动执行写你的程序。

·Python 是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

·Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

3.Python在软件开发云的应用

应用华为云软件开发云的流水线功能可以帮助Python开发者实现一键自动化开发部署,其中需要应用到代码仓库,编译构建,发布,部署等功能。

因为Python没有编译构建的过程,所以在实际开发过程中他是可以不用编译直接发布的,但是在华为云软件开发云中云端部署需要可识别的软件包,所以在华为云软件开发云中需要对Python的程序进行打包。打包的好处是不仅可以打通编译到部署的自动化流程,避免二次手动传包影响开发效率,还可以在编译构建后自动归档到发布仓库中,对软件包进行归档管理,帮助企业完善产品构建的发布管理。下面,就让我们看看如何在华为云软件开发云中跑通一个Python项目。

二.Python流程搭建示例

1.代码仓库

华为云软件开发云提供基于Git的代码托管仓库,仓库提供可视化的管理界面,支持文件在线编辑,仓库提交记录,代码贡献度统计等多种功能,满足各类开发者的需求。Python开发者可将自己的Python代码上传到此仓库中进行代码托管。

本demo中采用华为云软件开发云的代码仓库,建立空仓后,通过Git命令,与本地仓库进行关联,完成代码同步

2.编译构建

因为Python没有编译构建的过程,所以在实际开发过程中Python工程是可以不用编译直接发布的,但是在软开云中云端部署需要可识别的软件包,所以在软开云中需要对Python的程序进行打包。

华为云软件开发云编译构建服务支持多种开发环境的构建,也支持Python类型构建egg格式软件包,本demo中为了打通部署,形成自动化研发流程,采用Other构建类型,通过shell脚本将demo程序打成.tar格式的软件包。并在打包后自动上传到发布仓库进行版本归档管理。

在构建类型中输入要执行的shell脚本命令。本样例中执行命令为将demo输出为.tar格式的软件包。

在构建执行配置中设置构建成功后将软件包上传归档到发布仓库的具体信息。

3.发布

华为云软件开发云提供4中类型的发布仓库,前两种是远程Maven私仓,用于Maven类型构建过程中第三方依赖包的的管理。第三个仓库是mirror镜像仓,镜像了一些构建过程中经常以来的中央仓到后台,提升构建速度,体现云端构建的优势。我们本次demo中应用最后一个编译构建仓库,作为生成的软件包的版本归档管理仓库。

4.部署

当代码构建打包成功并归档到发布仓库后,可以进行部署工作。部署任务一共氛围四部分,分别是主机授权,编辑模版,编写脚本和执行部署。

先将主机添加到授信机器列表中。

因为python程序在发布的时候需要执行setup.py文件,不同工程有其特殊性,故通过自定义模版和执行shell脚本两种方法相结合的方式完成自动化部署。

本demo中部署模版和shell脚本任务分配样例:

部署模版:执行目录创建,软件包拷贝,解压

Shell脚本:提取占用端口进程号,解除端口占用,定位目标文件夹,执行setup.py,运行程序文件

完成任务后执行部署任务即可。

5.流水线

当所有流程打通之后,设置对应的流水线,将所有流程添加进去,实现自动化的构建发布部署一键执行。

将需要的任务添加进流水线中,并运行流水线。

如何在华为云软件开发云上运行Python的更多相关文章

  1. 如何在华为云软件开发云上搭建JavaWeb,Maven项目

    本文将使用华为云软件开发云向大家演示如何搭建JavaWeb,Maven项目. 一.相关信息 1.华为云软件开发云简介 华为云软件开发云(DevCloud)是集华为近30年研发实践,前沿研发理念,先进研 ...

  2. 华为云软件开发云VS开发痛点=?

    在软件开发的过程中,是不是总会遇到这些问题: 搭建一个开发环境,用了九牛二虎之力,悲催的是竟然用不了…… 团队同事突然出差,他写的代码出现问题,我却不会改…… 提升软件件质量靠代码,交叉看.找大拿,简 ...

  3. 华为云软件开发云:容器DevOps,原来如此简单!

    当开发团队把代码提交到 Git 应用仓库的那一刻,他们心里在想什么? 祈祷没有bug?渴望回家补觉?产品经理Go Die? 对,也不对.因为这只是最终发布万里长征的一小步,接下来要面对测试环境.生产环 ...

  4. 华为软件开发云(DevCloud):免费可商用的项目管理工具

    在软件开发技术和理念层出不穷的今天,如何更快的适应变化的环境,更好的满足客户的需求,已经成为决定从小到大各种规模企业能否活下去的关键. 天下武功唯快不破,在当今大环境中更是如此,微服务,敏捷开发,新的 ...

  5. 如何使用华为软件开发云快速部署PHP网站

    华为软件开发云这个工具,从去年推出我就一直在关注,毕竟是华为最新的一款软件开发工具,最近我一直在使用华为软件开发云进行开发项目管理,它有在线编译和构建.云端在线代码检查等功能,编译省去了很多物理机器的 ...

  6. Eclipse安装Git插件以及通过Git导入华为软件开发云项目

    --内容提交-- 1.    Eclipse安装Git插件 2.    在Eclipse中导入华为软件开发云项目, 以及常用Git操作 一. Eclipse安装Git插件 现在从eclipse官网下载 ...

  7. GitHub转华为软件开发云详细教程

    一.复制GitHub的代码库地址 首先,打开Github网页,找到要迁移的代码仓库地址,如下: 点击Clone or Download,出现以下界面 点击Copy toclipboard(复制到粘贴板 ...

  8. 如何将Android Studio与华为软件开发云代码仓库无缝对接(二)

    上篇文章:如何将Android Studio与华为软件开发云代码仓库无缝对接(一) 上一章讲了,如何用Android Studio以软件开发云代码仓库为基础,新建一个项目.接下来,这一章继续讲建好项目 ...

  9. 华为软件开发云对比Jenkins-JavaWeb项目持续部署方式

    一.前言:Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成和持续部署变成可能. 本文 ...

随机推荐

  1. 从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接)

    从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接) 一.总结 一句话总结:最好的是这个:"SELECT * FROM table WHERE id >= (( ...

  2. FZU《C语言程序综合设计》

    一年前的玩意. 老是有人找我要..一年前写得这么搓都不敢拿出来.... 但是好多人要啊.....直接发blog,省得下次还要发压缩文件.. 就不要吐槽我代码烂了,我也觉得很烂,至少现在看来确实很烂.. ...

  3. Android自己定义View画图实现拖影动画

    前几天在"Android画图之渐隐动画"一文中通过画线实现了渐隐动画,但里面有个问题,画笔较粗(大于1)时线段之间会有裂隙.我又改进了一下.这次效果好多了. 先看效果吧: 然后我们 ...

  4. php中嵌套html代码和html代码中嵌套php方式

    php中嵌套html代码和html代码中嵌套php方式 一.总结 拷贝的话直接html代码是极好的方式 1.php中嵌套html代码(本质是原生php):a.原生嵌套<?php .....?&g ...

  5. POJ 2914 Minimum Cut 最小割算法题解

    最标准的最小割算法应用题目. 核心思想就是缩边:先缩小最大的边.然后缩小次大的边.依此缩小 基础算法:Prime最小生成树算法 只是本题測试的数据好像怪怪的,相同的算法时间执行会区别非常大,并且一样的 ...

  6. jquery-9 京东和酒仙网左侧导航如何实现

    jquery-9 京东和酒仙网左侧导航如何实现 一.总结 一句话总结:布局的话多用定位,由底往上一层层的来布. 1.如何实现导航向div的平滑滑动? 右侧div和左侧的li一定要放在一起 127 &l ...

  7. php 字符串 去掉 html标签

    echo strip_tags("Hello <b>world!</b>");

  8. 洛谷 P2197 nim游戏

    洛谷 P2197 nim游戏 题目描述 甲,乙两个人玩Nim取石子游戏. nim游戏的规则是这样的:地上有n堆石子(每堆石子数量小于10000),每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取 ...

  9. USB 3.0规范中译本 第4章 超高速数据流模型

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章展示数据和信息如何在超高速上通过的一种高层次的描述.请阅读协议层一章关于低层次协议的细节.本章提供设备架 ...

  10. Android的NDK开发(3)————JNI数据类型的详解

    在Java中有两类数据类型:primitive types,如,int, float, char:另一种为reference types,如,类,实例,数组. 注意:数组,不管是对象数组还是基本类型数 ...