一. 华为云软件开发云与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. centos7 分区满了,分析哪个目录或文件占用空间-小叶-51CTO博客

    原文:centos7 分区满了,分析哪个目录或文件占用空间-小叶-51CTO博客 du -sh 例如: [root@zabbix ~]# du -sh /var/* 0 /var/adm 132M / ...

  2. 浅谈求lca

    lca即最近公共祖先,求最近公共祖先的方法大概有3种,其实是窝只听说过3种,这3种做法分别是倍增求lca,树剖求lca和tarjan求lca,但是窝只会前2种,所以这里只说前2种算法了. 首先是倍增求 ...

  3. SDWebImage使用

    SDWebImage这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. 将SDWebImage类库添加入工程时,一定 ...

  4. struts2注入类

    struts2是能够注入一个对象的,那么一定须要继承ModelDriven的泛型接口. package com.test.action; import com.opensymphony.xwork2. ...

  5. swift项目第四天:动态加载控制器

    一:Appdelegate import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate ...

  6. 【例题5-3 UVA - 10815】Andy's First Dictionary

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用stringstream来处理中间的标点. ->直接把他变成一个空格. 然后重新输入进去. set默认的字典序就是升序的了. ...

  7. QMap 的增删改查

    map 是一种数据容器,它提供一种由key 到 value 的映射.map 的key 是唯一的, 也是有序的.map 通常由近似平衡的红黑树来实现.key 的有序性,使得插入,查找节点比较有效.map ...

  8. Java 学习(21):Java 实例

    Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 //HelloWorld.java 文件 public cla ...

  9. Android 圆角ListView

    方法一:定义 <?xml version ="1.0" encoding ="UTF-8" ?> <shape xmlns:android = ...

  10. hreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别

    阅读更多 工作中多处接触到了ThreadPoolExecutor.趁着现在还算空,学习总结一下. 前记: jdk官方文档(javadoc)是学习的最好,最权威的参考. 文章分上中下.上篇中主要介绍Th ...